27/Oct/05 19:45
Proteger varias hojas al mismo tiempo
Cuando tenemos un libro con muchas hojas y queremos protejerlas todas con contraseña, esta macro es ideal para eso, y no tener que hacerlo 1 × 1.
[code:1:4a786df764]Sub Proteger()
Dim HojaInicial As String, Clave As String
On Error GoTo Mensaje
Clave = InputBox("Escribe la clave para proteger: ", "Proteger")
'PROTEGER LIBRO
ActiveWorkbook.Protect Password:=Clave, Structure:=True, Windows:=False
'PROTEGER HOJAS
Application.ScreenUpdating = False 'Para congelar la pantalla
HojaInicial = ActiveSheet.Name 'Guardamos el nombre de la hoja de inicio
For Each Sheet In Sheets
Sheet.Protect Password:=Clave, DrawingObjects:=True, Contents:=True, Scenarios:=True
Next
ActiveWorkbook.Sheets(HojaInicial).Select 'Regresamos a la hoja inicial
Application.ScreenUpdating = True 'Para actualizar la pantalla
Exit Sub
Mensaje:
MsgBox "El proceso se interrumpio porque la contraseña no es valida para todos los elementos.", vbCritical + vbOKOnly, "Proceso Interrumpido"
End Sub[/code:1:4a786df764]
Y para desproteger todas las hojas con una misma contraseña
[code:1:4a786df764]Sub Desproteger()
Dim HojaInicial As String, Clave As String
On Error GoTo Mensaje
Clave = InputBox("Escribe la clave para desproteger: ", "Desproteger")
'DESPROTEGER LIBRO
ActiveWorkbook.Unprotect Password:=Clave
'DESPROTEGER HOJAS
Application.ScreenUpdating = False 'Para congelar la pantalla
HojaInicial = ActiveSheet.Name 'Guardamos el nombre de la hoja de inicio
For Each Sheet In Sheets
Sheet.Unprotect Password:=Clave
Next
ActiveWorkbook.Sheets(HojaInicial).Select 'Regresamos a la hoja inicial
Application.ScreenUpdating = True 'Para actualizar la pantalla
Exit Sub
Mensaje:
MsgBox "El proceso se interrumpio porque la contraseña no es valida para todos los elementos.", vbCritical + vbOKOnly, "Proceso Interrumpido"
End Sub[/code:1:4a786df764]
«Antes que cambien los reinos, los hombres deberán cambiar»
═╬═