Cómo proteger o desproteger todas las hojas de un libro de Excel a la vez
🔍 WiseChecker

Cómo proteger o desproteger todas las hojas de un libro de Excel a la vez

Necesita bloquear o desbloquear varias hojas de cálculo en un archivo de Excel. Proteger cada hoja manualmente es lento y propenso a errores. La interfaz de Excel no tiene un botón único para proteger todas las hojas. Este artículo explica cómo usar una macro de VBA para asegurar o desasegurar cada hoja de cálculo de su libro con un solo clic.

Puntos clave: Proteger o desproteger todas las hojas

  • Desarrollador > Visual Basic > Insertar módulo: Abre el editor de VBA para pegar el código de la macro para la protección masiva de hojas.
  • Alt + F8: Abre el cuadro de diálogo Macro para ejecutar la macro que protege o desprotege todas las hojas de cálculo.
  • Archivo > Guardar como > Libro habilitado para macros de Excel (.xlsm): Guarda el formato de archivo necesario para almacenar y reutilizar la macro de VBA.

ADVERTISEMENT

Uso de una macro de VBA para la protección masiva de hojas

La función de protección estándar de Excel se aplica solo a la hoja de cálculo activa. Para proteger todas las hojas, debe escribir una macro de Visual Basic for Applications. Una macro automatiza la tarea recorriendo en un bucle cada hoja de cálculo del libro. Puede asignar una contraseña o dejarla en blanco para un bloqueo simple. La macro también puede desproteger todas las hojas si ya están aseguradas.

Requisitos previos para ejecutar macros

Su archivo de Excel debe guardarse como un libro habilitado para macros con la extensión .xlsm. También debe habilitar la pestaña Desarrollador en la cinta de opciones. Las macros están deshabilitadas de forma predeterminada por seguridad. Es posible que deba ajustar la configuración del Centro de confianza para permitir la ejecución de macros.

Pasos para crear y ejecutar la macro de protección

  1. Habilitar la pestaña Desarrollador
    Vaya a Archivo > Opciones > Personalizar cinta de opciones. En el panel derecho, marque la casilla Desarrollador. Haga clic en Aceptar.
  2. Abrir el editor de VBA
    Haga clic en la pestaña Desarrollador. En el grupo Código, haga clic en Visual Basic. También puede presionar Alt + F11.
  3. Insertar un nuevo módulo
    En el editor de VBA, en el menú, haga clic en Insertar > Módulo. Aparecerá una ventana de código en blanco.
  4. Pegar el código de la macro
    Copie y pegue el siguiente código en la ventana del módulo.

    Sub ProtectAllSheets()
    Dim ws As Worksheet
    Dim pwd As String
    pwd = InputBox("Enter a password (leave blank for no password):", "Protect All Sheets")
    For Each ws In ThisWorkbook.Worksheets
    ws.Protect Password:=pwd
    Next ws
    MsgBox "All sheets have been protected."
    End Sub

    Sub UnprotectAllSheets()
    Dim ws As Worksheet
    Dim pwd As String
    pwd = InputBox("Enter the password to unprotect:", "Unprotect All Sheets")
    For Each ws In ThisWorkbook.Worksheets
    ws.Unprotect Password:=pwd
    Next ws
    MsgBox "All sheets have been unprotected."
    End Sub

  5. Cerrar el editor de VBA
    Haga clic en la X en la esquina superior derecha o presione Alt + Q para volver a Excel.
  6. Ejecutar la macro
    Haga clic en Desarrollador > Macros o presione Alt + F8. Seleccione ProtectAllSheets o UnprotectAllSheets de la lista. Haga clic en Ejecutar.
  7. Introducir una contraseña si se solicita
    Aparecerá un cuadro de diálogo. Escriba una contraseña para la protección o desprotección. Haga clic en Aceptar. Un mensaje confirma que la acción se completó.
  8. Guardar el libro
    Vaya a Archivo > Guardar como. Elija una ubicación. En Guardar como tipo, seleccione Libro habilitado para macros de Excel (*.xlsm). Haga clic en Guardar.

ADVERTISEMENT

Errores comunes y limitaciones

La macro falla con “Error en tiempo de ejecución ‘1004’”

Este error a menudo significa que la macro intentó proteger una hoja de gráfico o una hoja de cálculo muy oculta. El código proporcionado solo recorre las hojas de cálculo estándar. Modifique la línea de código “For Each ws In ThisWorkbook.Worksheets” a “For Each ws In ThisWorkbook.Sheets” para incluir hojas de gráfico.

Contraseña olvidada para la desprotección

La macro UnprotectAllSheets requiere la contraseña correcta. La protección de hojas de Excel no es un cifrado fuerte. Si olvida la contraseña, no podrá usar la macro. Necesitaría usar una herramienta de recuperación de contraseñas de terceros o volver a crear el libro.

La macro no protege la estructura del libro

Esta macro protege el contenido de la hoja de cálculo contra ediciones. No protege la estructura del libro, como evitar la eliminación de hojas. Para eso, use Revisar > Proteger libro. Puede ejecutar ambas protecciones para una seguridad completa.

Método manual vs. macro de VBA: diferencias clave

Elemento Protección manual Macro de VBA
Tiempo requerido Alto: debe repetir los pasos para cada hoja Bajo: configuración única, ejecución instantánea
Consistencia de contraseñas Riesgo de usar contraseñas diferentes por hoja Garantiza que se aplique la misma contraseña a todas las hojas
Nivel de habilidad necesario Conocimientos básicos de Excel Requiere copiar código y habilitar macros
Reutilización Los pasos deben repetirse para cada libro La macro se puede guardar en Personal.xlsb para usarla en cualquier libro
Manejo de errores Ninguno: el usuario debe notar si se omitió una hoja El bucle automatizado garantiza que no se omita ninguna hoja

Ahora puede asegurar un libro completo de Excel con un solo comando. Use la macro ProtectAllSheets para aplicar configuraciones de seguridad uniformes. Para un uso avanzado, asigne la macro a un botón en su Barra de herramientas de acceso rápido. Esto le permite proteger todas las hojas sin abrir la pestaña Desarrollador.

ADVERTISEMENT