• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Tutorial Excel

Aprende Excel

¡¡¡Más de 300 lecciones de Excel GRATIS!!!
  • Inicio
  • Blog
  • Funciones
  • Gráficos
  • Trucos
  • Macros
  • Generalidades

Macro para desproteger todas las hojas de un libro en Excel

En el tutorial anterior abordamos cómo proteger todas las hojas de un libro de Excel utilizando una macro, una solución idónea para blindar celdas con fórmulas y evitar modificaciones accidentales antes de compartir un archivo con otros usuarios o departamentos.

Sin embargo, cuando llega el momento de auditar los modelos, actualizar las estructuras contables o introducir nuevos bloques de datos, la protección se convierte en un obstáculo. Al igual que ocurre al intentar proteger, Excel deshabilita la opción de Desproteger hoja si intentas seleccionar varias pestañas simultáneamente utilizando la tecla Ctrl.

Tener que desproteger una a una cada pestaña e introducir la contraseña manualmente en cada paso resulta aburrido, ineficiente y propenso a errores. En esta guía te proporcionamos la macro en VBA para desproteger todas las hojas de tu archivo en un solo segundo, incluyendo el control de errores de clave y una versión interactiva mediante ventana emergente.

1. El código básico para desproteger todas las pestañas

Para desproteger las pestañas de golpe, utilizaremos una rutina en Visual Basic que ejecuta el método .Unprotect recorriendo la colección de hojas del libro activo.

Paso 1: Inserción de la macro en el editor VBE

  1. Abre tu archivo habilitado para macros y presiona la combinación de teclas Alt + F11 para desplegar el editor de Visual Basic para Aplicaciones.
  2. Haz clic derecho sobre tu proyecto en el panel izquierdo (o ve al menú superior) y selecciona Insertar > Módulo.
  3. Pega la siguiente rutina limpia en el panel de la derecha:

VBA

Sub DesprotegerTodasLasHojas()
    'Macro para desproteger de golpe todas las hojas de un libro
    Dim wksht As Worksheet
    
    'Gestión de errores: evita que la macro se detenga si una hoja tiene clave diferente
    On Error Resume Next
    
    For Each wksht In ActiveWorkbook.Worksheets
        'Desprotegemos la hoja aplicando la contraseña configurada
        wksht.Unprotect Password:="contraseña"
    Next wksht
    
    MsgBox "¡Proceso finalizado! Se han desprotegido las hojas del libro.", vbInformation, "Desprotección Completa"
End Sub

(Nota: En la línea Password:="contraseña" debes sustituir la palabra entre comillas por la clave secreta exacta que utilizaste al proteger la plantilla original).

Paso 2: Guardado del archivo

Recuerda que debes conservar este libro bajo el formato Libro de Excel habilitado para macros (*.xlsm). Si lo guardas como un archivo común de Excel (.xlsx), el módulo de VBA se eliminará de forma irreversible al cerrar el programa.

2. Versión Interactiva Avanzada: Petición de contraseña mediante InputBox

Escribir la contraseña directamente en el código fuente de la macro tiene un inconveniente obvio: si compartes el archivo con un usuario intermedio que sepa presionar Alt + F11, podrá ver la clave escrita en texto plano dentro del módulo.

Para resolver esto y hacer que la herramienta sea mucho más flexible y profesional, podemos modificar la rutina para que despliegue una pequeña ventana emergente solicitando la clave en tiempo real:

VBA

Sub DesprotegerHojasConInputBox()
    Dim wksht As Worksheet
    Dim ClaveUsuario As String
    
    'Solicitamos la contraseña mediante un cuadro de diálogo emergente
    ClaveUsuario = InputBox("Introduce la contraseña para desproteger todas las hojas:", "Desproteger Libro")
    
    'Si el usuario presiona Cancelar o deja el campo vacío, cancelamos el proceso
    If ClaveUsuario = "" Then Exit Sub
    
    On Error Resume Next
    
    'Recorremos las pestañas aplicando la clave ingresada
    For Each wksht In ActiveWorkbook.Worksheets
        wksht.Unprotect Password:=ClaveUsuario
    Next wksht
    
    MsgBox "Las hojas coincidentes han sido desprotegidas correctamente.", vbInformation, "Resultado"
End Sub

Con esta variante, el código no almacena ninguna clave estática, lo que te permite utilizar la misma macro de desprotección aunque cambies de contraseña con frecuencia.

Cómo ejecutar la macro y asignarla a un botón flotante

Para poner en marcha la macro existen dos métodos:

Método 1: Ejecución tradicional

  1. Presiona la combinación de teclado Alt + F8 (o dirígete a la pestaña Programador/Desarrollador > Macros).
  2. Selecciona en la lista el nombre de tu rutina (por ejemplo, DesprotegerTodasLasHojas o DesprotegerHojasConInputBox).
  3. Haz clic en el botón Ejecutar.

A primera vista la pantalla no realizará ningún movimiento brusco, pero si intentas hacer doble clic en cualquier celda de cualquier hoja, comprobarás que la protección se ha retirado y que puedes editar valores y fórmulas libremente.

Método 2: Asignar la macro a un botón táctil (Recomendado)

Para evitar tener que abrir el panel con Alt + F8 cada vez que necesites trabajar, puedes crear un botón interactivo dentro de tu hoja principal:

  1. Dirígete a la pestaña Insertar > Ilustraciones > Formas y dibuja un rectángulo con bordes redondeados.
  2. Haz doble clic sobre la forma y escribe el texto: «Desproteger Hojas».
  3. Haz clic derecho sobre el borde del rectángulo y selecciona la opción Asignar macro…
  4. En la lista emergente, selecciona tu rutina DesprotegerHojasConInputBox y pulsa Aceptar.

A partir de este momento, con solo hacer un clic sobre ese botón, Excel desplegará la casilla de contraseña y desprotegerá todas las pestañas de tu informe al instante.

Solución de problemas frecuentes al desproteger mediante VBA

Durante la ejecución de scripts de desprotección masiva en libros de trabajo complejos, pueden surgir algunas incidencias comunes:

  • ¿Por qué la macro no desprotege alguna pestaña específica? Si el código se ejecuta pero una hoja concreta sigue bloqueada, se debe a que esa pestaña fue protegida manualmente con una contraseña diferente a la configurada en la rutina. La línea On Error Resume Next evita que el programa se rompa, saltándose esa hoja y continuando con el resto.
  • Error de contraseñas olvidadas: Las macros de tipo .Unprotect no rompen la encriptación de Microsoft; requieren que conozcas la clave original. Si no introduces la clave correcta en el argumento Password, Excel no liberará el rango de celdas.
  • Hojas ocultas y muy ocultas (VeryHidden): A diferencia de la interfaz gráfica tradicional de Excel (que exige mostrar una hoja antes de poder desprotegerla), la macro recorre todo el objeto Worksheets. Esto significa que desprotegerá también las pestañas que tengas ocultas en segundo plano sin necesidad de volverlas visibles primero.

 

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Barra lateral principal

Buscar

Más de 300 trucos de Excel ¡¡¡GRATIS!!!

¡¡¡Más de 300 videos!!! gratis

Entradas y Páginas Populares

  • Excel 2010
    Excel 2010
  • Función PRONOSTICO.LINEAL en Excel
    Función PRONOSTICO.LINEAL en Excel
  • Los SUBTOTALES en Excel
    Los SUBTOTALES en Excel
  • Función SI.CONJUNTO en Excel
    Función SI.CONJUNTO en Excel
  • Tablas de datos en Excel
    Tablas de datos en Excel

Síguenos

  • Facebook
  • Instagram
  • YouTube
  • TikTok
Para aprovechar al máximo el potencial de Excel. Desde un nivel básico hasta un nivel experto.

Ir al blog

Mi canal de Youtube

Contacto

No te pierdas las novedades

100% libre de spam.

Sobre mí                            Aviso legal                            Política de privacidad y cookies

Gestionar el consentimiento de las cookies
Las cookies se utilizan para la personalización de anuncios".
Para ofrecer las mejores experiencias, utilizamos tecnologías como las cookies para almacenar y/o acceder a la información del dispositivo. El consentimiento de estas tecnologías nos permitirá procesar datos como el comportamiento de navegación o las identificaciones únicas en este sitio. No consentir o retirar el consentimiento, puede afectar negativamente a ciertas características y funciones.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que se utiliza exclusivamente con fines estadísticos anónimos. Sin un requerimiento, el cumplimiento voluntario por parte de tu Proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarte.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.
  • Administrar opciones
  • Gestionar los servicios
  • Gestionar {vendor_count} proveedores
  • Leer más sobre estos propósitos
Ver preferencias
  • {title}
  • {title}
  • {title}