Variables publicas.
Hola.
Como hago para declarar una variable en un modulo para no necesitar declararlas en todos los forms y botones.
Por q lo q yo quiero hacer es q con un boton abra un archivo de excel, con otro boton escriba en ese archivo, y con otro boton q cierre el archivo guardando los cambios, y me dijieorn q esa es la unica forma. Por q sino cada vez q toque el boton dos q es para escribir m va a avovler a aabrir el archivo de excel y va a ser unn lio.
Me pueden ayuyar? hay alguna otra forma de hacer lo q digo?
Como hago para declarar una variable en un modulo para no necesitar declararlas en todos los forms y botones.
Por q lo q yo quiero hacer es q con un boton abra un archivo de excel, con otro boton escriba en ese archivo, y con otro boton q cierre el archivo guardando los cambios, y me dijieorn q esa es la unica forma. Por q sino cada vez q toque el boton dos q es para escribir m va a avovler a aabrir el archivo de excel y va a ser unn lio.
Me pueden ayuyar? hay alguna otra forma de hacer lo q digo?
pones en el modulo estandard en la zona de declaraciones:
Global glMiVariablePublica as Variant
Logico que en lugar de Variant podes poner el tipo de dato que necesites. Te recomiendo usar lo menos posible las variables globales y de hacerlo ponerle nombres bien identificables para evitar declarar una variable local con el mismo nombre y el consabido problema de superposicion de datos.
Global glMiVariablePublica as Variant
Logico que en lugar de Variant podes poner el tipo de dato que necesites. Te recomiendo usar lo menos posible las variables globales y de hacerlo ponerle nombres bien identificables para evitar declarar una variable local con el mismo nombre y el consabido problema de superposicion de datos.
NO puedo de esa forma me tira error. Yo pongo
Public Sub Main()
Global globjExcel As Object
Global objLibro As Object
Global strRuta As String
(...)
end sub
Y me tira uun error q dice: Atributo no valido en procedimiento o funcion.
Me pueden ayudar?
Public Sub Main()
Global globjExcel As Object
Global objLibro As Object
Global strRuta As String
(...)
end sub
Y me tira uun error q dice: Atributo no valido en procedimiento o funcion.
Me pueden ayudar?
las declaraciones dentro de un procedimiento es siempre 'Private'
Ponla en la sección de declaraciones de un módulo, fuera de toda función.
un saludo.
Ponla en la sección de declaraciones de un módulo, fuera de toda función.
un saludo.
para probarlo, inserta un módulo en blanco, y pon:
Option Explicit
Public globjExcel As Object
Public objLibro As Object
Public strRuta As String
_________________________________
Public Sub Main()
'Las variables que declares aquí, sólo las prodrás utilizar aquí;
(...)
end sub 'cuando se ejecute esta instrucción, las variables de este procedimiento se destruyen.
Public ProcedimientoX()
(...)
strRuta = "c:Fichero.xls"
(...)
End Sub
De esta menera podrás leer o asignar valores a estas variables desde cualquier formulario o módulo.
que sepas que declarar una 'Global' es equivalente a 'Public', puedes hacerlo como prefieras.
Option Explicit
Public globjExcel As Object
Public objLibro As Object
Public strRuta As String
_________________________________
Public Sub Main()
'Las variables que declares aquí, sólo las prodrás utilizar aquí;
(...)
end sub 'cuando se ejecute esta instrucción, las variables de este procedimiento se destruyen.
Public ProcedimientoX()
(...)
strRuta = "c:Fichero.xls"
(...)
End Sub
De esta menera podrás leer o asignar valores a estas variables desde cualquier formulario o módulo.
que sepas que declarar una 'Global' es equivalente a 'Public', puedes hacerlo como prefieras.
me sigeu sin slalir osea pongo eso en el boton para escribri pongo esto :
objLibro.Worksheets(1).Range("A5").Value = "chau"
(el libro ya esta abierto) y me tira error
objLibro.Worksheets(1).Range("A5").Value = "chau"
(el libro ya esta abierto) y me tira error
los datos que me das són insuficientes
¿cuál es el error que te devuelve ahora? ¿es el mismo?
¿dónde haces la asignación "Set objLibro = "?
si es en el Sub Main, ¿haces la llamada a la función antes que «objLibro.Worksheets(1).Range("A5").Value = "chau"»?
o te dice «Variable de objeto o bloque With no establecido»
¿cuál es el error que te devuelve ahora? ¿es el mismo?
¿dónde haces la asignación "Set objLibro = "?
si es en el Sub Main, ¿haces la llamada a la función antes que «objLibro.Worksheets(1).Range("A5").Value = "chau"»?
o te dice «Variable de objeto o bloque With no establecido»
