Usar el valor de una variable de una sub de un modulo para abrir uno u otro formulario en función de esta. Excel VBA

Esto lo estoy haciendo en Excel VBA

Ejemplo de lo que necesito:

Tengo 2 botones 1 y 2. Los 2 abren un formulario para poner nombre y pass y cuando es correcta tengo que verificar de donde vino la llamada si fue del botón 1 abrirá el form 1 si fue del 2 abrirá el 2

Defini una variable string como static. (Static info as string) y en el boton 1 le asigno un valor y en el dos otro. Pero no funciona al salir del modulo pierde el valor. ¿Cómo podria hacerlo?

1 respuesta

Respuesta
1

Realiza lo siguiente:

- Suponiendo que los 2 botones abren el userform "FormPass"

- En el FormPass, pon la variable "llamada" como pública:

Public llamada
'
Private Sub CommandButton1_Click()
'Por.Dante Amor
    Select Case llamada
        Case "boton1"
            UserForm1.Show
        Case "boton2"
            UserForm2.Show
    End Select
End Sub

- Ahora en el código de cada botón, pon lo siguiente:

Private Sub CommandButton1_Click()
    With FormPass
        .llamada = "boton1"
        .Show
    End With
End Sub
'
Private Sub CommandButton2_Click()
    With FormPass
        .llamada = "boton2"
        .Show
    End With
End Sub

Avísame cualquier duda


'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

Gracias dante, pero no lo logro.

Amplificador como tengo la estructura.

Form1 con 2 botones 1 y 2

formpass con 2 text y dos botones. Al presionar aceptar va a una subrutina de un modulo TP donde verifica si el usuario y pass son correctas, si no lo son puse un contador para que a la tercera vez cierre la base. cuando es correcta ahi tiene que ocultar formpass y abrir un form 2 o un form 3 segun quien haya llamado al formulario formpass si el boton 1 (abriria el form 2) o el boton 2 (el form 3). Lo que veo ya que para ver cual es el problema he puesto msgbox con la variable llamada y antes con las que había probado yo, es que se ve que al ir del form al modulo la variable se blanquea. Gracias.

PD te lego la base, pudiste ver porque hace eso con los tab de l a pregunta anterior así la finalizamos.

Abrazos

Perdón dante otra cosa importante me dijiste que en formpass ponga public llamada, no se bien en que parte ponerla ya que dentro de un sub no puede ir, yo probé haciendo doble click en el formulario y las puse en el paso anterior al evento active que estaba usando, también después la puse en general del formulario y general del formulario que tiene los botones 1 y 2 pero tampoco funciono. Ya que creo que el problema es un problema de ámbito de la vriable que identifica a cada botón, pero no encuentro la forma de que siga disponible todo el tiempo.

Abrazos

Pon la declaración de la variable "llamada" al principio de todo el código.

Sigue nuevamente las instrucciones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas