¿Cómo ponerle un formulario a una macro?

Me gustaría saber si se le pude agregar un formulario a esta macro:

Sub Ejemplo()
pass = InputBox("Contraseña?")
If pass = "12345678" Then
'Aquí lo que quieres que haga
Else
MsgBox "Clave Incorrecta", vbExclamation
Exit Sub
End If
End Sub

Es una macro para ponerle contraseña a cualquier macro, lo que quiere es agregarle un formulario más estético, ¿cómo lo haría?

Respuesta
1

[Hola. Por si no la tuvieras habilitada, sigue estos pasos.

Para habilitar la pestaña Programador:

Clic en Archivo y luego en Opciones.

Clic en Personalizar cinta de opciones en el panel izquierdo.

Activa la casilla Programador en Pestañas principales a la derecha y luego Clic en Aceptar.

Salu2 Carlos Arrocha

2 respuestas más de otros expertos

Respuesta
1

En teoría, no agregas formularios a las macros, agregas macros a los formularios je

Bueno, en el editor de VBA, así:

Y luego tienes un formulario que vas dandole forma con los controles:

Supongo que solo necesitarías un TextBox y algún botón de OK o Aceptar. Y en ese botón pondrías el código, que seria más o menos así:

Private Sub CommandButton1_Click()
pass = Me.TextBox1.Value
If pass = "12345678" Then
'Aquí lo que quieres que haga
Else
MsgBox "Clave Incorrecta", vbExclamation
End If
End Sub

Best.

Saludos Andy, gracias por tu ayuda, hice lo que me dijiste, funciona, pero quiero cambiarle dos cosas:

-Que cuando ponga la contraseña se vea así: "********"

-Que a la hora de poner la contraseña y darle a "Aceptar", se cierre la ventana y ejecute la macro.

Espero que me puedas ayudar, muchas gracias por tu ayuda.

En las propiedades del TextBox, hay una que se llama PasswordChar. Ahí pones lo que quieras.

Así:

Y para que se cierra, en el codigo pones:

Private Sub CommandButton1_Click()
pass = Me.TextBox1.Value
If pass = "12345678" Then
'Aquí lo que quieres que haga

Unload Me
Else
MsgBox "Clave Incorrecta", vbExclamation
End If
End Sub

Con Unload Me cierras el formulario

Gracias Andy, otra cosa... Veo que el formulario que cree gracias a ti, no me aparece en las macros para así poder ejecutarlo, ¿cómo lo hago?

Porque un formulario no es una macro, es un objeto. Para hacerlo aparecer hay muchas formas.

Puedes crear una macro cuyo único objetivo es mostrar el formulario, así:

Sub AbrirForm()

UserForm1.Show

End sub

Respuesta
1

Más fácil pon esta instrucción en tu formulario, con eso activas la ocultación de password, cada que teclees la clave te la mostrara en astericos, o pon la instrucción en tu macro

Private Sub UserForm_Initialize()
TextBox1.PasswordChar = "*"
End Sub

Añade tu respuesta

Haz clic para o
El autor de la pregunta ya no la sigue por lo que es posible que no reciba tu respuesta.

Más respuestas relacionadas