Proteger y desproteger varias hojas en Excel usando macros: VBA Tips
En este tutorial te mostraré un par de macros que nos servirán para Proteger y Desproteger todas las hojas en un archivo de Excel, usando macros. Para proteger y desproteger hojas en Excel sin usar macros sólo deberás ir a la pestaña Revisar > Proteger hoja.
Proteger hojas usando el método Protect
Usaremos la función InputBox para pedir la contraseña que deseamos usar para desproteger las hojas.
Figura 1. Usando InputBox pedimos la contraseña para desproteger las hojas.
Ver video Proteger hojas en Excel usando macros VBA
Suscríbete al canal de EXCELeINFO en YouTube para aprender más de Excel y macros.
Con el ciclo For Next recorremos todas las hojas del archivo y las protegemos con la contraseña que ingresamos en el InputBox.
En caso de que alguna hoja se encuentre previamente protegida, la macro mostrará un mensaje con el nombre de aquellas hojas que ya estaban protegidas.
Figura 2. Se muestran los hombres de las hojas que ya estaban protegidas.
Código VBA de la macro Proteger
Abrimos el IDE de Visual Basic para Aplicaciones e insertamos un Módulo nuevo yendo a menú Insertar > Módulo.
'EXCELeINFO 'MVP Sergio Alejandro Campos 'http://www.exceleinfo.com 'https://www.youtube.com/user/sergioacamposh 'http://blogs.itpro.es/exceleinfo Sub Proteger() Pass = InputBox("Ingresa la contraseña para proteger las hojas", "EXCELeINFO") For Each Hoja In ThisWorkbook.Sheets nHoja = Hoja.Name If Hoja.ProtectContents = True Then CuentaErrores = CuentaErrores + 1 nHoja2 = nHoja2 & vbNewLine & "> " & nHoja Else End If Hoja.Protect Password:=Pass Next Hoja If CuentaErrores >= 1 Then MsgBox "La siguientes hojas no se pudieron proteger porque ya estaban protegidas" & vbNewLine & nHoja2, vbExclamation, "EXCELeINFO" End If End Sub
Desproteger hojas usando el método Unprotect
Para esta macro usaremos también la función InputBox para solicitar ahora la contraseña que usaremos para desproteger las hojas. De la misma manera usaremos el ciclo For Each para recorrer todas las hojas y desprotegerlas asignando la contraseña proporcionada.
En caso de alguna hoja no se pueda desproteger con la contraseña proporcionada, se mostrará un mensaje indicando las hojas que no se pudieron desproteger.
Figura 3. Se muestra un mensaje con las hojas que no se pudieron desproteger.
Código VBA de la macro Desproteger
Este código lo insertamos en el Módulo 1 que se creó anteriormente.
Sub Desproteger() Pass = InputBox("Ingresa la contraseña para Desproteger las hojas", "EXCELeINFO") For Each Hoja In ThisWorkbook.Sheets On Error Resume Next nHoja = Hoja.Name Hoja.Unprotect Password:=Pass If Err.Number = 1004 Then CuentaErrores = CuentaErrores + 1 If Hoja.ProtectContents = True Then nHoja2 = nHoja2 & vbNewLine & "> " & nHoja Else End If End If Next Hoja If CuentaErrores >= 1 Then MsgBox "La siguientes hojas no se pudieron desproteger, valida la contraseña." & vbNewLine & nHoja2, vbExclamation, "EXCELeINFO" End If End Sub
Descarga el archivo de ejemplo
Proteger y desproteger varias hojas en Excel usando macros – VBA Tips – EXCELeINFO.zip
Si te gustó este tutorial por favor regístrate en nuestra Lista de correo y Suscríbete a nuestro canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.