Saltar al contenido
PROGRAMAR EN VBA MACROS DE EXCEL

Como PROTEGER y DESPROTEGER HOJAS de Excel Ingresando Contraseña PASSWORD VBA #522

proteger y desproteger hoja de excel con password contraseña clave

Requerir Contraseña para proteger y desproteger hoja de Excel

En este post se muestra como proteger y desproteger hojas de Excel con Password, para proteger las hojas se muestra un formulario que solicita una clave para proteger las hojas de Excel como así también para desprotegerlas con password el cual es el mismo que se ingresa en el formulario.

Aprende a manejar Excel en forma fácil, 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.

Proteger y Desproteger Hoja de Excel con Clave

La macro de Excel lo que hace es al presionar el botón que se encuentra en la hoja del Excel, cuyo archivo puedes descargar en forma gratis desde el final de este post, procede a proteger o desproteger con Contraseña todas las hojas de Excel

Cabe aclarar que al presionar el botón que está en la hoja de Excel se muestra un botón solicitando un password, esa misma contraseña es la que se usa para proteger y desproteger con Clave las Hojas de Excel.

Si se ingresa el Password o clave incorrecta la macro NO protege o desprotege las Hojas de Excel, muestra un mensaje avisando de tal situación y no hace nada, finalizando la macro inmediatamente.

Haciendo click en el Label con un icono de un «ojo» que está en el formulario se puede mostrar la clave si se vuelve a hacer click la clave vuelve al modo «PasswordChart», es decir se muestran unos asteriscos (****) en lugar del texto.

Explicación de la macro de Excel para proteger y desproteger con Password hojas de Excel

El código del formulario permite determinar si el password o contraseña ingresada es correcta comparándola con la que se encuentra predeterminada en este ejemplo la clave es «admin», la macro compara el texto ingresado en el Textbox con dicha contraseña en caso de ser igual procede a llamar la macro que protege y desprotege las hojas el código es el siguiente:

resp = «admin»
If TextBox1 = resp Then
Call ProtegeDesprotege

En caso que el código sea incorrecto sale un mensaje y finaliza la macro, con el siguiente código:

Else
MsgBox («El password ingresado no es válido»), vbInformation, «AVISO»
TextBox1 = Clear

En caso de haber ingresado la contraseña correcta se llama la macro «ProtegeDesprotege», esta macro determina si la hoja en la posición dos (2) está protegida eso indica que todas las hojas están protegidas, en ese caso procede a realizar un bucle entre la hoja dos y la cantidad de hojas existentes en el Libro de Excel, desprotegiendo las hojas también cambia el caption (etiqueta) del botón de la hoja de Excel y sale un mensaje diciendo que las hojas se desprotegieron, recordemos que esto solo sucede en el caso que las hojas hayan estado protegidas; el código es el siguiente:

Sheets(2).ProtectContents = True Then
For ii = 2 To Sheets.Count
Sheets(ii).Unprotect Password:=resp
Sheets(1).CommandButton1.Caption = «PROTEGER HOJAS»
Next ii
MsgBox («Todas las hojas se desprotegieron con éxito»), vbInformation, «macrosenexcel.com»

En caso que las hojas estén desprotegidas, la macro procede a protegerlas, realiza un bucle entre la segunda hoja hasta la cantidad existentes de hojas, desprotegiendo cada una de ellas, la macro además cambia el caption del botón de la hoja de Excel y sale un mensaje avisando que las hojas han sido desprotegidas, el código es el siguiente:

Else
For ii = 2 To Sheets.Count
Sheets(ii).Protect Password:=resp
Sheets(1).CommandButton1.Caption = «DESPROTEGER HOJAS»
Next ii
MsgBox («Todas las hojas se protegieron con éxito»), vbInformation, «macrosenexcel.com»
End If

El código para ocultar y mostar la contraseña es el siguiente:

If TextBox1.PasswordChar = «*» Then
TextBox1.PasswordChar = «»
Else
TextBox1.PasswordChar = «*»
End If
End Sub

Lo único que hace es determinar si el Textbox tiene la propiedad «PasswordChar», es decir se ven normalmente asteriscos (******) o cualquier otro carácter, menos el texto, en caso que la propiedad se True o verdadera, es decir se estén mostrando estos caracteres, hace que se muestre el texto, caso contrario es decir si se está mostrando el texto establece la propiedad en true y se vuelven a ver los asteriscos o cualquier otro caracter configurado para que aparezca con la propiedad «PasswordChar», en el siguiente link hay una explicación adicional sobre el tema.

Descarga el Libro usado para Proteger y Desproteger con Contraseña Hojas de Excel mediante Ingreso de Password o Clave en Formulario

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()
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Label2.Visible = False
resp = «admin»
If TextBox1 = resp Then
Call ProtegeDesprotege
Unload Me
Else
MsgBox («El password ingresado no es válido»), vbInformation, «AVISO»
TextBox1 = Clear
TextBox1.SetFocus
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub Label2_Click()
Label2.Visible = False
TextBox1.SetFocus
End Sub

Private Sub Label3_Click()
If TextBox1.PasswordChar = «*» Then
TextBox1.PasswordChar = «»
Else
TextBox1.PasswordChar = «*»
End If
End Sub

Private Sub TextBox1_Change()
Label2.Visible = False
End Sub

Private Sub UserForm_Click()
Label2.Visible = True
End Sub

Private Sub UserForm_Initialize()
Label2.Visible = True
TextBox1.PasswordChar = «*»
End Sub

Código que se ingresa en un Modulo

Public resp As String
Sub ProtegeDesprotege()
If Sheets(2).ProtectContents = True Then
For ii = 2 To Sheets.Count
Sheets(ii).Unprotect Password:=resp
Sheets(1).CommandButton1.Caption = «PROTEGER HOJAS»
Next ii
MsgBox («Todas las hojas se desprotegieron con éxito»), vbInformation, «macrosenexcel.com»

Else
For ii = 2 To Sheets.Count
Sheets(ii).Protect Password:=resp
Sheets(1).CommandButton1.Caption = «DESPROTEGER HOJAS»
Next ii
MsgBox («Todas las hojas se protegieron con éxito»), vbInformation, «macrosenexcel.com»
End If
Sheets(1).Select
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