VBA – Protección de Libros de Trabajo (proteger/desproteger con contraseña)

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on marzo 4, 2022

Excel le permite la capacidad de proteger sus libros de trabajo de Excel de los cambios. Este tutorial le mostrará cómo proteger o desproteger la estructura del libro de trabajo utilizando VBA.

Protección de Libros de Trabajo VBA

La protección de libros de trabajo de VBA le permite bloquear la estructura del libro de trabajo. Cuando un libro de trabajo está protegido, los usuarios no podrán agregar, eliminar, ocultar/desocultar o proteger/desproteger las hojas de trabajo. Si está construyendo un modelo, probablemente querrá activar la protección del libro de trabajo para evitar que los usuarios (o usted) borren accidentalmente las hojas de trabajo.

libro protegido desprotegido

Desproteger libro de trabajo VBA

Para desproteger un libro de trabajo simplemente utilice la siguiente línea de código:

Workbooks("Libro1").Unprotect

Nota: este código sólo funcionará si el libro de trabajo estaba protegido sin contraseña. Si estaba protegido con una contraseña, también debe introducir la contraseña para desprotegerlo:

Desproteger libro de trabajo con contraseña

Esta línea de código desprotegerá un libro de trabajo que ha sido protegido con una contraseña:

Workbooks("Libro1").Unprotect Password:="contraseña"

o puede omitir Contraseña:=

Workbooks("Libro1").Unprotect "contraseña"

Desproteger Este Libro De Trabajo

Este código desprotegerá ThisWorkbook (ThisWorkbook es el libro de trabajo donde se almacena el código en ejecución. Nunca cambiará).

ThisWorkbook.Unprotect

o desprotegerá ThisWorkbook con una contraseña:

ThisWorkbook.Unprotect "contraseña"

Desproteger Libro de Trabajo Activo

Este código desprotegerá el Libro de Trabajo Activo.

ActiveWorkbook.Unprotect

o desprotegerá el Libro de Trabajo Activo con una contraseña:

ActiveWorkbook.Unprotect "contraseña"

Desproteger todos los libros de trabajo abiertos

Este código desprotegerá todos los libros de trabajo abiertos:

Sub DesprotegerTodosLibrosDeTrabajoAbiertos()
    Dim libro As Workbook
    
    For Each libro In Workbooks
        libro.Unprotect
    Next libro 

End Sub

Desproteger Libro de Trabajo – Sin Saber la Contraseña

Si necesita desproteger un libro de trabajo sin conocer la contraseña, hay varios complementos que le ayudarán. Yo recomendaría Ribbon Commander.

Desproteger todas las hojas del libro de trabajo

Después de desproteger un libro de trabajo, es posible que también desee desproteger todas las hojas del libro. Aquí hay un procedimiento que desprotegerá todas las hojas:

Sub DesprotegerLibroDeTrabajoYHojas()
    Dim hoja As Worksheet
    
    ActiveWorkbook.Unprotect
    For Each hoja In Worksheets
        hoja.Unprotect
    Next
End Sub

Proteger el Libro de Trabajo

Puede proteger las estructuras del libro de trabajo de la misma manera que las desprotege.

Proteger libro de trabajo sin contraseña

Esta línea de código protegerá un libro de trabajo (sin contraseña)

Workbooks("Libro1").Protect

Nota: A menudo aplico la protección de libros de trabajo sin contraseña, simplemente para evitar cambios accidentales en los libros de trabajo.

Proteger el libro de trabajo con contraseña

Este código protegerá la estructura del libro de trabajo (con una contraseña)

Workbooks("Libro1").Protect "contraseña"

o:

Workbooks("LIbro1").Protect Password:="contraseña"

Proteger con contraseña un archivo de Excel

En lugar de la protección del libro de trabajo, es posible que desee proteger con contraseña un archivo de Excel completo. Para hacerlo usando VBA, guarde como el libro de trabajo con una contraseña:

Workbooks("Libro1").SaveAs "contraseña"

Proteger / Desproteger Libro de Trabajo Ejemplos

Desocultar Todas las Hojas de Trabajo en el Libro de Trabajo Protegido

Este procedimiento desprotegerá un libro de trabajo, mostrará todas las hojas de trabajo y volverá a proteger el libro de trabajo

Sub desprotegerlibro_mostrar_hojas_protegerlibro()
    Dim hoja As Worksheet
    
    ActiveWorkbook.Unprotect
    For Each hoja In Worksheets
        hoja.Visible = xlSheetVisible
    Next
    
    ActiveWorkbook.Protect
End Sub

Proteger el libro de trabajo y todas las hojas

Este procedimiento protegerá todas las hojas de un libro de trabajo y luego protegerá el libro de trabajo:

Sub proteger_libro_proteger_hojas()
    Dim hoja As Worksheet
    
    ActiveWorkbook.Unprotect
    
    For Each hoja In Worksheets
        hoja.Protect
    Next
    
    ActiveWorkbook.Protect
End Sub

También puede añadir la protección por contraseña:

Sub proteger_libro_proteger_hojas_password()
    Dim hoja As Worksheet
    
    ActiveWorkbook.Unprotect "contraseña"
    
    For Each hoja In Worksheets
        hoja.Proteger "contraseña"
    Next
    
    ActiveWorkbook.Protect "contraseña"
End Sub
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples