Hoja de desprotección de Excel VBA

Tenemos una opción en Excel por la cual podemos proteger nuestras hojas y archivos de Excel para que no se eliminen, cambien de nombre y guarden los datos de cualquier otro cambio que no sea necesario. La opción se llama Proteger hoja y Proteger libro de trabajo, que se encuentra en la sección Cambios en la cinta del menú Revisar . Podemos establecer una contraseña mediante la cual podemos guardar la hoja seleccionada de cualquier cambio realizado. Pero lo que digo, esto también se puede automatizar usando el código VBA. Sí, podemos crear un código o macro mediante el cual podemos bloquear automáticamente la hoja y el libro de trabajo. Pero este artículo trata sobre la desprotección de la hoja.

Desproteger la hoja también es un proceso bastante fácil como proteger la hoja. Para desproteger la hoja, necesitamos ingresar la contraseña que usamos al bloquear esa hoja. Para desproteger la hoja, solo necesitamos seleccionar el nombre de la hoja de trabajo y la función llamada Desproteger . Si eso está disponible en VBA, entonces es solo un código de una línea. Pero si no es así, entonces debemos buscar otra forma de hacerlo que veremos en los ejemplos a continuación.

¿Cómo desproteger la hoja en Excel VBA?

Aprenderemos cómo desproteger la hoja en Excel usando el código VBA.

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

Hoja de protección de VBA - Ejemplo # 1

Primero, veríamos un ejemplo simple para desproteger la hoja. Para esto, siga los pasos a continuación:

Paso 1: Primero abra un módulo desde la pestaña del menú Insertar como se muestra a continuación.

Paso 2: ahora escriba el subprocedimiento de la hoja VBA Unprotect. O podemos elegir cualquier otro nombre para definirlo.

Código:

 Sub VBA_Unprotect () End Sub 

Paso 3: defina una variable llamada Hoja de trabajo con cualquier nombre. Preferiblemente el nombre que se asemeja a una hoja de trabajo como ExSheet

Código:

 Sub VBA_Unprotect () Dim ExSheet As Worksheet End Sub 

Paso 4: Ahora establezca la variable de hoja de trabajo definida con el nombre de la Hoja que queremos desproteger. Aquí, el nombre de esa hoja es Sheet1 .

Código:

 Sub VBA_Unprotect () Dim ExSheet As Worksheet Set ExSheet = Worksheets ("Sheet1") End Sub 

Paso 5: ahora asigne la función Desproteger que está allí en la lista desplegable de VBA a la variable de hoja de cálculo ExSheet .

Código:

 Sub VBA_Unprotect () Dim ExSheet As Worksheet Set ExSheet = Worksheets ("Sheet1") ExSheet.Unprotect End Sub 

Paso 6: Ahora proporcione la contraseña que le dimos para bloquear esa hoja. Aquí, esa contraseña es "Open1212". Y esto puede ser cualquier cosa, que depende de la elección del usuario.

Código:

 Sub VBA_Unprotect () Dim ExSheet As Worksheet Set ExSheet = Worksheets ("Sheet1") ExSheet.Unprotect Password: = "Open1212" End Sub 

Paso 7: Ahora primero protegeremos la Hoja1 haciendo clic en la pestaña del menú Revisar y seleccionando la opción Proteger hoja .

Paso 8: Ingrese la contraseña que queremos y haga clic en Aceptar para proteger la hoja.

Paso 9: vuelva a ingresar la contraseña para confirmar.

Paso 10: Una vez hecho, veremos que no podemos cambiar nada en esa hoja, incluso si lo intentamos. Ahora para desproteger la hoja, compilaremos nuestro código escrito y lo ejecutaremos.

Veremos que, una vez que se ejecuta nuestro código, ahora podemos realizar cualquier cambio en Sheet1 .

Paso 11: ¿Qué sucede si eliminamos o cambiamos la línea de código donde hemos insertado la contraseña y la hacemos hasta la función Desproteger como se muestra a continuación? Veamos qué sucederá si lo hacemos.

Código:

 Sub VBA_Unprotect () Dim ExSheet As Worksheet Set ExSheet = Worksheets ("Sheet1") ExSheet.Unprotect End Sub 

Paso 12: Ahora vuelve a ejecutar el código completo. Veremos, aparecerá un cuadro de mensaje que le pedirá que ingrese la contraseña. Introduzca aquí la contraseña que hemos seleccionado mientras protegemos la hoja y haga clic en Aceptar.

Con este proceso también, podemos desproteger la hoja que queremos.

Hoja de protección de VBA - Ejemplo # 2

Hay otra forma de desproteger las hojas de trabajo. Esta es la forma más fácil y sencilla de hacerlo. Para esto, siga los pasos a continuación:

Paso 1: escriba el subprocedimiento para VBA Unprotect como se muestra a continuación.

Código:

 Sub VBA_Unprotect2 () End Sub 

Paso 2: Use la función Hojas de trabajo y seleccione la hoja que queremos desproteger. Aquí de nuevo, esa hoja es Sheet1 .

Código:

 Sub VBA_Unprotect2 () Hojas de trabajo ("Sheet1") End Sub 

Paso 3: de forma similar a como se muestra en el ejemplo 1, usaremos el comando Desproteger junto con la contraseña que usamos al bloquear la hoja. Aquí, nuestra contraseña para desproteger también es la misma que " Open1212 ".

Código:

 Sub VBA_Unprotect2 () Hojas de trabajo ("Sheet1"). Contraseña de desprotección: = "Open1212" End Sub 

Ahora nuestro código está completo. Para probar esto, primero, proteja la hoja de la misma manera que lo hicimos en el ejemplo-1 y ejecute este código para desprotegerla.

Hoja de protección de VBA - Ejemplo # 3

¿Qué pasa si digo que podemos volver a escribir un código donde no necesitamos seleccionar el nombre de la hoja que queremos desproteger? Sí, esto se puede hacer usando un bucle. Para esto, siga los pasos a continuación:

Paso 1: nuevamente para esto, abra un Módulo y escriba el subprocedimiento de la hoja VBA Unprotect como se muestra a continuación.

Código:

 Sub VBA_Unprotect3 () End Sub 

Paso 2: Use DIM para definir una variable para la Hoja de trabajo como Hoja de cálculo. Es la misma línea que hemos usado en los ejemplos anteriores.

Código:

 Sub VBA_Unprotect3 () Dim ExSheet como hoja de trabajo Fin Sub 

Paso 3: Abra un bucle For-Next donde escribiremos las condiciones de la hoja desprotegida.

Código:

 Sub VBA_Unprotect3 () Dim ExSheet como hoja de trabajo para el siguiente ExSheet End Sub 

Paso 4: Escriba la condición para cada libro de trabajo activo abierto, seleccione la Hoja de trabajo activa actual, como se muestra a continuación.

Código:

 Sub VBA_Unprotect3 () Dim ExSheet como hoja de trabajo para cada ExSheet en ActiveWorkbook.Worksheets Next ExSheet End Sub 

Paso 5: ahora de manera similar a la que se ve en los ejemplos anteriores, utilizaremos variables definidas junto con la función Desproteger para desproteger la hoja. Aquí también, podemos o no usar la contraseña. Esta es una forma opcional.

Código:

 Sub VBA_Unprotect3 () Dim ExSheet como hoja de trabajo para cada ExSheet en ActiveWorkbook.Worksheets ExSheet.Unprotect Password: = "Open1212" Siguiente ExSheet End Sub 

Compile el código y ejecútelo si no se encuentra ningún error.

Así es como podemos desproteger cualquier hoja de trabajo actual abierta sin siquiera seleccionar el nombre y la secuencia de eso. Este código considerará automáticamente esa hoja que está actualmente seleccionada y abierta.

Pros de Excel VBA Unprotect Sheet

  • Los procesos y ejemplos mostrados arriba son los más fáciles de aplicar.
  • Podemos desproteger la hoja de ambas maneras, proporcionando la contraseña en el código o sin la contraseña.
  • Esto funciona de la misma manera que desprotegemos manualmente la hoja.

Cosas para recordar

  • Como el proceso es bastante fácil de implementar, puede que no haya ninguna mejora mediante la automatización.
  • Podemos cambiar la contraseña cada vez que rehacemos el proceso de protección y desprotección de la hoja.
  • Podemos seleccionar el nombre de la Hoja o la secuencia de la hoja que queremos desproteger.
  • Y una vez hecho, guarde el código en la hoja de trabajo de Excel para habilitar Macro para proteger el código VBA que se pierde.

Artículos recomendados

Esta es una guía para la hoja de protección de VBA. Aquí discutimos cómo desproteger la hoja en Excel usando el código VBA junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Variable pública de VBA (ejemplos)
  2. Número de formato VBA con función
  3. Variante de VBA con tipos de datos
  4. VBA Aleatorizar | Plantillas de Excel
  5. VBA Environ

Categoría: