Hoja de VBA UnProtect

Hoja de desprotección de Excel VBA

Hay situaciones en las que protegemos nuestras hojas de trabajo para evitar que el usuario las manipule. Mientras protegemos la hoja de trabajo, generalmente mantenemos la misma contraseña. En este artículo, le mostraremos la forma de desproteger la hoja utilizando la codificación VBA.

Ejemplos

Puede descargar esta plantilla de Excel de hoja de desprotección de VBA aquí - Plantilla de Excel de hoja de desprotección de VBA

Ejemplo 1

Desproteger la hoja es 99% más simple que protegerla, solo necesitamos la contraseña para desproteger la hoja de trabajo.

Lo primero que debemos hacer es mencionar el nombre de la hoja de trabajo que vamos a desproteger. Por ejemplo, si está buscando desproteger la hoja llamada "Datos de ventas", entonces su código VBA debería ser así.

Hojas de trabajo ("Datos de ventas")

Luego acceda al método Desproteger.

Como podemos ver en la imagen de arriba, no vemos ningún tipo de lista de IntelliSense para ayudarnos. Esto hace que el trabajo sea más difícil, especialmente para el nuevo alumno.

Para superar esto, generalmente confío en declarar una variable de VBA como "Hoja de trabajo".

Código:

 Sub Unpretect_Example1 () Dim Ws As Worksheet End Sub 

Ahora establezca la variable declarada en la hoja respectiva.

Código:

 Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Datos de ventas") End Sub 

Ahora use una variable para acceder a todas las propiedades y métodos de la variable declarada.

Como puede ver en la imagen de arriba podemos acceder a todas las propiedades y métodos. Seleccione el método "Desproteger" de la lista IntelliSense.

Solicita la contraseña para desproteger la hoja. He configurado la contraseña como "Excel @ 1234", por lo que proporcionaré la contraseña de la misma manera.

Esto desprotegerá la hoja de trabajo denominada "Datos de ventas".

Código:

 Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Datos de ventas") Ws.Unprotect Password: = "Excel @ 1234" End Sub 

Si no hay contraseña, solo necesitamos usar el método "Desproteger" e ignorar el parámetro "Contraseña".

Código:

 Sub Unpretect_Example1 () Dim Ws As Worksheet Set Ws = Worksheets ("Sales Data") 'Cambie el nombre de la hoja de trabajo según sus requisitos Ws.Unprotect' Si no hay contraseña, simplemente pase el método "UnProtect" End Sub 

Si hay alguna contraseña, debemos ingresar la contraseña entre comillas dobles. La contraseña distingue entre mayúsculas y minúsculas, así que recuérdalas cuidadosamente.

Ejemplo n. ° 2: desproteja todas las hojas de Excel con solo un clic

Hemos visto cómo desproteger la hoja de trabajo en particular. Imagine que tiene muchas hojas de trabajo y todas las hojas de trabajo están protegidas con la misma contraseña, entonces no podemos seguir escribiendo códigos para cada hoja de trabajo por separado.

En estos casos, necesitamos usar bucles para recorrer la colección de objetos de la hoja de trabajo y desprotegerlos con facilidad.

El siguiente código recorrerá todas las hojas de trabajo y la desprotegerá.

Código:

Sub Unpretect_Example2 () Dim Ws como hoja de trabajo para cada W en ActiveWorkbook.Worksheets Ws.Unprotect Password: = "Excel @ 1234" 'Cambie la contraseña como ha mencionado mientras las protege. Siguiente Ws End Sub

Ejemplo n. ° 3: situaciones especiales

Situación 1: alguna vez he imaginado cuando la contraseña proporcionada es incorrecta. Cuando la contraseña proporcionada es incorrecta, obtendremos 1004: Run Time Error.

Para manejar estos errores, podemos usar la opción "En caso de error Ir a etiqueta". El siguiente código es el ejemplo del mismo.

Código:

Sub Unpretect_Example3 () Dim Ws As Worksheet For each Ws in ActiveWorkbook.Worksheets On Error GoTo Errormessage Ws.Unprotect Password: = "Excel @ 1234" 'Cambie la contraseña como ha mencionado mientras las protege. Mensaje de error: MsgBox "Contraseña incorrecta" Siguiente Ws End Sub

El código anterior mostrará un bonito cuadro de mensaje que dice "Contraseña incorrecta".

Situación 2: cuando la hoja está protegida sin contraseña y si proporciona una contraseña aleatoria, seguirá desprotegiendo la hoja de trabajo sin mostrar ningún tipo de error.

Situación 3: cuando la hoja está protegida por una contraseña, pero si no proporciona ninguna contraseña, aparecerá VBA como un cuadro de entrada de contraseña para ingresar la contraseña.

En el cuadro de entrada anterior, debemos ingresar nuestra contraseña para desproteger la hoja de trabajo. Si hace clic en el botón Cancelar, saldrá del subprocedimiento de VBA sin mostrar nada a menos que haya algún cuadro de mensaje de usuario.