Quitar la contraseña en una hoja de Excel

Hacer editable una hoja de Excel protegida con contraseña

En ocasiones protegemos hojas de Excel con una contraseña que después olvidamos de forma que, aunque podemos abrir el archivo, no podemos modificarlo. En casos como este existen diferentes métodos para resolver el problema, algunos de ellos usando software de terceros. En este artículo comento un método bastante sencillo que utiliza una macro. Lo he probado en Office 2013, desconozco si funciona en todas las versiones de Office. Este método no muestra la contraseña incluida en el archivo, lo que hace es saltarla para que pueda ser modificado incluso grabando una contraseña nueva.

Nota: desproteger un archivo de Excel del que no eres propietario ni tienes los permisos necesarios es una práctica no recomendable.

En primer lugar abrimos la hoja de Excel que está protegida por la contraseña olvidada. Desde ahí abrimos el Editor de Visual Basic que está en la pestaña Desarrollador:

macro1

En el Editor de Visual Basic nos posicionamos en la hoja protegida dentro de la ventana de la izquierda, damos doble clic y se abre a la derecha la ventana en la que se escribe código. En esta ventana pegamos el código que se muestra al final del artículo para crear una macro.

Pusamos el botón Ejecutar para que se ejecute la macro:

Al terminar la ejecución de la macro se muestra una ventana de diálogo que informa de que la contraseña es una serie de caracteres, pulsamos Aceptar sin hacer caso a la contraseña mostrada y ya tenemos la hoja desprotegida y editable:

digo:

Sub Desproteger()
Dim a As Integer, b As Integer, c As Integer
Dim d As Integer, e As Integer, f As Integer
Dim a1 As Integer, a2 As Integer, a3 As Integer
Dim a4 As Integer, a5 As Integer, a6 As Integer
On Error Resume Next
For a = 65 To 66: For b = 65 To 66: For c = 65 To 66
For d = 65 To 66: For e = 65 To 66: For a1 = 65 To 66
For a2 = 65 To 66: For a3 = 65 To 66: For a4 = 65 To 66
For a5 = 65 To 66: For a6 = 65 To 66: For f = 32 To 126
Contraseña = Chr(a) & Chr(b) & Chr(c) & Chr(d) & Chr(e) & Chr(a1) _
& Chr(a2) & Chr(a3) & Chr(a4) & Chr(a5) & Chr(a6) & Chr(f)
ActiveSheet.Unprotect Contraseña
If ActiveSheet.ProtectContents = False Then
MsgBox "La contraseña es:" & vbCr & Contraseña
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub