Requerir Contraseña o Clave para Ejecutar una Macro
En esta entrega se mostrará un formulario que requiere contraseña, clave o password para ejecutar una macro, en este caso ocultar y mostrar las hojas de Excel, es decir como ocultar y mostrar hojas de Excel requiriendo para ello el ingreso de una Contraseña válida a través de un formulario de Excel VBA.
Deseas aprender Excel, si la respuesta es SI, hazlo en forma fácil y sencilla, click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.
Mira la macro en acción, una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con vídeos relacionados donde podrás ver la macros relacionadas en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.
Ejecutar Macro previo Validar si se Ingresó Contraseña o Password
La macro que se muestra en este post, cuyo libro de Excel usado como ejemplo se encuentra disponible para ser bajado desde el link que se encuentra al final del post, una vez abierto el libro se observa un botón al presionar el mismo se muestra un formulario que solicita un Password.
En este caso al ingresar el Password o clave correcta se muestran u ocultan las hojas de Excel según sea el caso, es decir si están visibles las oculta, si están oculta las muestra.
En este caso se procede a mostrar u ocultar hojas de Excel, pero se puede adaptar para que el formulario solicite Password o clave previo a ejecutar cualquier macro, es decir que con ello se impide que cualquier usuario ejecute una macro, solo podrá ser ejecutada por el usuario autorizado y es aquel que posee la clave correcta.
Se debe notar que en el mismo formulario se encuentra un Label con un icono de un «ojo», haciendo click sobre dicho objeto se puede mostrar la clave si se vuelve a hacer click la clave vuelve al modos «PasswordChart», es decir se muestran unos asteriscos (****) en lugar del texto en el Textbox destinado a ingresar la clave.
Detalle del código que muestra formulario y solicita password para ejecutar macro
Cuando se presiona el botón aceptar se procede a determinar si lo escrito en el Textbox destinado a ingresar la clave es igual a la clave que en este caso se guarda en la variable «resp» cuya clave es «admin».
resp = «admin»
If TextBox1 = resp Then
En caso de haberse ingresado el Password correcto, oculta el formulario que solicita la contraseña y llama la macro para mostrar y ocultar hojas de Excel, con el siguiente código:
Unload Me
Call MuestraOculta
En caso que la contraseña ingresada no sea correcta sale un Msgbox (mensaje) avisando que el Password ingresado no es válido terminando la ejecución de la macro sin hacer ningún cambio, el código es el siguiente:
Else
MsgBox («El password ingresado no es válido»), vbInformation, «AVISO»
La macro que llama el formulario cuando se ingresó correctamente la contraseña permite ocultar y mostrar hojas, algo que ya fue explicado en el ejemplo como ocultar y mostrar hojas con un solo botón, el cual sugiero leer si se necesita una explicación más detallada en como se puede ocultar y mostrar hojas en Excel.
Para ocultar y mostrar hojas se determina cuantas hojas hay en total y se hace un bucle de la hoja 2 hasta la última hoja, ocultando todas las hojas, para ello se usa este código:
For ii = 2 To Sheets.Count
Sheets(ii).Visible = xlVeryHidden
Sheets(1).CommandButton1.Caption = «MOSTRAR HOJAS»
Next ii
Mostrando las hojas de Excel en caso que hayan estado ocultas, con el siguiente código:
Else
For ii = 2 To Sheets.Count
Sheets(ii).Visible = True
Sheets(1).CommandButton1.Caption = «OCULTAR HOJAS»
Next ii
End If
Para mostrar y ocultar el Password ingresado se debe hacer click en el Label u icono con ojo verde, la codificación está en el evento click de Label y lo único que hace es determinar si el Textbox tiene la propiedad «PasswordChar», es decir se oculta el texto con símbolos en este caso asteriscos (*****), en ese caso muestra el texto y si el texto es visible se vuelve a establecer la propiedad del Textbox en «PasswordChart», quedando el Textbox son asteriscos (*****) nuevamente; el código usado es el siguiente:
If TextBox1.PasswordChar = «*» Then
TextBox1.PasswordChar = «»
Else
TextBox1.PasswordChar = «*»
End If
Descarga el Libro usado para Ocultar Mostrar Hojas de Excel mediante Ingreso de Contraseña o Clave
Descarga el libro usado en este ejemplo desde el final del post, el mismo es totalmente gratuito y libre su uso, solicito aportar para sostener esta web, si está dentro de tus posibilidades, desde ya muchas gracias.
Código Formulario que solicita Password para ejecutar un Macro
Código que se ingresa en un Userform
Private Sub CommandButton1_Click()
Dim resp As String
resp = «admin»
If TextBox1 = resp Then
Unload Me
Call MuestraOculta
Else
MsgBox («El password ingresado no es válido»), vbInformation, «AVISO»
TextBox1 = Clear
TextBox1.SetFocus
End If
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub Label3_Click()
If TextBox1.PasswordChar = «*» Then
TextBox1.PasswordChar = «»
Else
TextBox1.PasswordChar = «*»
End If
End Sub
Private Sub UserForm_Initialize()
TextBox1.PasswordChar = «*»
End Sub
Código que se ingresa en un Modulo
Sub MuestraOculta()
Application.ScreenUpdating = False
If Sheets(2).Visible = True Then
For ii = 2 To Sheets.Count
Sheets(ii).Visible = xlVeryHidden
Sheets(1).CommandButton1.Caption = «MOSTRAR HOJAS»
Next ii
Else
For ii = 2 To Sheets.Count
Sheets(ii).Visible = True
Sheets(1).CommandButton1.Caption = «OCULTAR HOJAS»
Next ii
End If
Sheets(1).Select
Application.ScreenUpdating = True
End Sub
Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407