VBA – Protección de Libros de Trabajo (proteger/desproteger con contraseña)
In this Article
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.
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