Proteger todas las hojas de un libro con una Macro

Deseo realizar la protección de todas las hojas de un libro a través de Macros, ya que tienen columnas agrupadas y deseo que el usuario pueda usar la vista de agrupación sin problemas, por ello tengo lo siguiente:

Private Sub Workbook_Open()
With Worksheets("101")
.EnableOutlining = True
.Protect Password:="", Contents:=True, UserInterfaceOnly:=True
End With
End Sub

Tengo 40 hojas en el libro y deseo que estas también cumplan la misma orden, lo que no quisiera es repetir la misma macro para colocar cada hoja subordinada de esta macro...

Pensé que podría usar With Worksheets("101,102,103,104") pero obviamente no es posible,, ¿existe una solución o debo repetir la macro tantas veces como hojas tenga en mi libro?

Una sola de las hojas del libro no la necesito con protección pero si no se puede hacer excepción no me importaria ni me molestaría en mi trabajo.

1 respuesta

Respuesta
1

Podrías agregar un ciclo que recorra todas las hojas, tu macro quedaría más o menos así...

Private Sub Workbook_Open()
Dim ws as WorkSheet
For Each ws in ThisWorkbook.Sheets
With ws
.EnableOutlining = True
.Protect Password:="", Contents:=True, UserInterfaceOnly:=True
End With
Next ws
End Sub

Saludos 

PD: revisá el código porque lo hice "de memoria", sin verificar en el Excel

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas