lunes, 21 de junio de 2010

Desproteger hoja excel

Cómo desproteger una hoja en Excel.
Se puede desproteger la hoja mediante esta rutina que halla un password válido para la hoja (y que no tiene nada que ver con el que inicialmente tenía, ¡pero que es válido!). Copiar la rutina aquí expuesta y pegarla en un módulo cualquiera del mismo libro, con ayuda del editor de Visual Basic (ALT+F11 para abrir el editor). Cerrar el editor, seleccionar la hoja a desproteger, y ejecutar la macro breakit (ALT+F8, para seleccionarla). Tras la ejecución, un mensaje dará un password equivalente, y la hoja ya estará desprotegida.
Sub breakit()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
On Error Resume Next
For i = 65 To 66
For j = 65 To 66
For k = 65 To 66
For l = 65 To 66
For m = 65 To 66
For i1 = 65 To 66
For i2 = 65 To 66
For i3 = 65 To 66
For i4 = 65 To 66
For i5 = 65 To 66
For i6 = 65 To 66
For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i) & Chr(j) & _
Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) _
& Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
Exit Sub
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub