Mantener el valor de una variable al saltar de procedimiento

Por ejemplo, uso un user una sub que le da valores a la variable1, Variable2 y Variable 3, pero en una de las linieas de este procedimiento, muestro un formulario.

Como hago para que los valores que almacene durante la ejecución de la sub en cada variable, estén disponibles para la ejecuccion del formulario, sin tener que copiar y pegar el procedimiento nuevamente en el código del formulario.

A demás de eso si posterior mente deseo que alguno de los valores cargados a variables, estén disponibles cuando al cerrar el formulario llame otro procedimiento.

2 Respuestas

Respuesta
1

Define las variables... muchos no tienen la costumbre ni de hacerlo, pero se debe hacer siempre.

Hay 3 tipos de definición

LOCAL

Con Dim: es ese caso la variable tiene ambito local, solo vale en el programa

Ejm:

Sub programa

Dim edad as integer         

la macro

End sub

GENERAL:

Con Private: en este caso el ámbito es todo el módulo, vale para todos los subprogramas de ese módulo, y conserva su valor entre uno y otro, pues no "muere" cuando termina el subprograma, tienen un rango sobre el subprograma. Se escribe el dimensionamiento en la parte superior del módulo, antes de las subrutinas.

Private saldo as double

Sub Prog1

Dim edad as integer

maro

End Sub

Sub Prog2

Dim nombre as string

macro2

End Sub

GLOBAL

Con Public (alguno usan Global, pero esto ya es obsoleto). En este caso, la variable es válida para TODO el proyecto, todos lo módulos, formularios, etc. del archivo.. También se escribe el dimensionamiento en la parte superior del módulo, antes de las subrutinas

Ejm:

Public veces as integer

Private saldo as double

Sub Prog1

Dim edad as integer

maro

End Sub

Sub Prog2

Dim nombre as string

macro2

End Sub

Como lo vez en esta pregunta, si se trata de modulo a modulo, o procedimiento a procedimiento, funciona correctamente, pero cuando se trata de un modulo. Procedimiento a un userfrom no me funciona. Como hacer que el formulario, tome el valor de labariable de un modulo.

Como ves en la respuesta... para el tipo PUBLIC...

En este caso, la variable es válida para TODO el proyecto, todos lo módulos, formularios, etc. del archivo..

(Un proyecto VBA es TODO, TODO el código)

Funciona entre módulos y proyectos... pero define la variable (como también dice la respuesta)... como PUBLIC y en un MÓDULO COMÚN.

Respuesta
1

Para ello debes declararla publica, en un modulo pon al principio

Public mivariable

De esta manera desde cualquier parte del procedimiento donde le asignes un valor a la variable podrás usar el valor de dicha variable en otro procedimiento, formulario etc. Mira este ejemplo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas