2013-11-20

Proteger y desproteger hojas mediante VBA

En Excel no es posible proteger más de una hoja a la vez. Es necesario ir una a una. En el grupo Cambios de la ficha Revisar, clic en Proteger hoja.
No obstante, podemos emplear VBA para proteger varias hojas de un libro, en este caso todas:
Sub ProtegerHojas()
Dim i As Integer
    For i = 1 To Sheets.Count
        Sheets(i).Protect Password:="Contraseña"
    Next i
End Sub
Sub DesprotegerHojas()
Dim i As Integer
    For i = 1 To Sheets.Count
        Sheets(i).Unprotect Password:="Contraseña"
    Next i
End Sub
Otra opción, para evitar la contraseña escrita en el código, es usar un cuadro de entrada donde escribiremos la contraseña deseada. En caso de dejarse en blanco, protegerá las hojas sin contraseña.
Sub ProtegerHojas2()
Dim i As Integer, contr As String
contr = InputBox("Contraseña para proteger las hojas")
    For i = 1 To Sheets.Count
        Sheets(i).Protect Password:=contr
    Next i
End Sub
Sub DesprotegerHojas2()
Dim i As Integer, contr As String
contr = InputBox("Contraseña para desproteger las hojas")
    For i = 1 To Sheets.Count
        Sheets(i).Unprotect Password:=contr
    Next i
End Sub

No hay comentarios:

Publicar un comentario

Nube de datos