Macro para proteger libro en Excel

Vamos a continuar con la aplicación del objeto Workbook utilizando sus Métodos y en esta ocasión veremos cómo se puede programar una macro para poder bloquear o proteger el Libro de trabajo impidiendo cambiar su estructura como mover, agregar o eliminar hojas. Para lograr esto vamos a utilizar el Método Protect.

proteger libro Excel con contraseña Vba.

Método Protect: Con la aplicación de este método, lo que estamos indicando desde VBA es la opción de Activar la opción de protección que se encuentra en la ficha REVISAR Proteger Libro. Esta opción es muy útil para asegurar la estructura del libro de trabajo, evitar insertar o eliminar hojas.

Desde Excel abrimos el Editor VBA (Alt + F11), insertamos un Módulo (Clic derecho sobre el proyecto Excel, Insertar, Módulo:

Ingresamos el siguiente código:

Sub ProtegerLibro()

ThisWorkbook.Protect

End Sub

Queda de la siguiente manera en el Módulo:

Veamos lo que significan cada una de las líneas:

  1. La primera línea Sub ProtegerLibro (), indica el inicio de la macro.
  2. En la segunda línea estamos utilizando del Objeto ThisWorkbook el Método Protect el cual nos permite aplicar un nivel de Protección al nivel de la estructura del Libro.
  3. La última línea marca el fin (End) de la Macro o Subrutina (Sub).

Al ejecutar la macro, a simple vista parece que no pasara nada, pero si intentamos insertar o eliminar una hoja nos daremos cuenta que estas opciones no estas habilitadas; probemos asignando la macro a una autoforma con clic derecho Asignar macro:

En la ventana de asignación de macros seleccionamos la macro ProtegerLibro, damos Aceptar y probemos dando clic en el botón.

Descargar archivo de trabajo.

Forma de citar este artículo (APA):

Invitado. (2015, mayo 30). Macro para proteger libro en Excel [Entrada de blog]. Recuperado de https://www.gerencie.com/macro-para-proteger-libro-en-excel.html

Recomendados.

Deje su opinión o su pregunta. Trataremos de darle respuesta.
Su comentario o pregunta será editada automáticaente por el sistema.

Regístrese para informarle cuando se responda su pregunta.

2 comentarios
  1. ismael cruz hernandez abril 4 de 2025

    Hola, ¿qué tal?

    Quisiera saber cómo hacer, si tengo varias hojas de cálculo, que si la primera hoja de cálculo no está llena, las siguientes hojas no se puedan llenar. Es decir, si la primera hoja no está llena, las demás no deben funcionar.

    Responder a ismael cruz hernandez
    • Gbot
      Gbot en respuesta a @ismael cruz hernandez abril 5 de 2025

      Para lograr que las hojas de cálculo dependan del estado de la primera hoja en Excel, puede utilizar la siguiente macro:

      Private Sub Workbook_SheetActivate(ByVal Sh As Object)
      Dim ws1 As Worksheet
      Set ws1 = ThisWorkbook.Sheets(“Hoja1”)

      ‘ Reemplaza A1:Z100 con el rango que necesitas verificar
      Dim cell As Range
      Dim vacio As Boolean
      vacio = False

      For Each cell In ws1.Range(“A1:Z100”)
      If IsEmpty(cell.Value) Then
      vacio = True
      Exit For
      End If
      Next cell

      ‘ Si Hoja1 no está llena y se intenta acceder a otra hoja…
      If vacio And Sh.Name “Hoja1” Then
      MsgBox “Primero debes completar todos los campos en Hoja1.”, vbExclamation
      Sheets(“Hoja1”).Activate
      End If
      End Sub

      Cada vez que alguien intenta ir a otra hoja, Excel revisa si hay celdas vacías en el rango de “Hoja1”.

      Si encuentra alguna vacía, no permite cambiar de hoja y muestra un mensaje.

      Responder a Gbot