Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
Logo Excel Avanzado

Desproteger una hoja al abrir un libro con Macros

| Sin comentarios

En Excel es muy útil tener la capacidad de ejecutar nuestras macros automáticamente al abrir un libro. En este caso veremos un par de formas de desproteger una hoja o varias al abrir un libro de Excel.

  • Existen dos escenarios: la hoja está protegida con una constraseña, o sin ella. Si esta protegida con un password se utiliza la propiedad Unprotect Password:="PASS", el código quedaría de la siguiente manera:

Sub EjmDesprotegerConPassword()

Sheets(1).Unprotect Password:="CLAVE"

End Sub

Más generalmente, existen dos formas de desproteger hojas al abrir un libro, asumiremos para estos casos que las hojas fueron protegidas sin contraseña para simplificar el entendimiento de la subrutina. Si se necesitara hacerlo para una hoja protegida por contraseña se seguiría el mismo procedimiento solo que utilizando la propiedad antes mencionada.

Forma 1:

Esta forma es la más sencilla y consiste en tan solo nombrar a la macro Auto_Open al crearla, y colocar dentro del procedimiento lo que queremos que haga, en este caso desproteger la hoja actual o la hoja deseada al abrir el libro. Para este ejemplo desprotegeremos la hoja actual y el código sería de la siguiente manera:

Sub Auto_Open()

ActiveSheet.Unprotect

End Sub

 

Forma 2:

Debido a que Excel solo nos permite crear una macro con el nombre Auto_Open, esta segunda forma, tal vez la más ortodoxa de hacerlo, nos permite además crear varias subrutinas (si se considera necesario) y ejecutarlas al iniciar el libro. Esto si no buscáramos algo tan simple como desproteger una hoja al abrir un libro.

Consiste en entrar a This Workbook y desde ahí seleccionar las opciones Workbook y Open, tal como se puede ver:

imagen1

 

 

 

(Para mayor visualización de la imagen, hacer click en la misma)

Para este ejemplo desprotegeremos 3 hojas simultáneamente, para esto deberemos utilizar el siguiente código en un módulo nuevo.

Sub DesprotegerHojas()

Worksheets(1).Unprotect
Worksheets(2).Unprotect
Worksheets(3).Unprotect

End Sub

Finalmente, podemos llamar a la macro deseada (que se puede encontrar en cualquier módulo dentro del proyecto) o pegarla en la subrutina que abrimos inicialmente en This Workbook. Como en este ejemplo hemos llamado a nuestra subrutina “DesprotegerHojas”, colocamos el nombre de la macro dentro del Private Sub. Así desprotegeremos las hojas en la posición 1,2 y 3 automáticamente al abrir el archivo.

imagen2

 

 

 

(Para mayor visualización de la imagen, hacer click en la misma)

 

Por: Aldo Galli

Deja una respuesta

Los campos requeridos estan marcados con *.