domingo, 29 de enero de 2012

Como desproteger hoja de Excel con contraseña usando Visual Basic

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). Vamos a Insertar-Modulo, pegamos el codigo que voy a poner mas abajo, ejecutan con F5 y la hoja ya estará desprotegida.
Esto lo probe con un archivo que encontre hace tiempo por Internet
haciendo los pasos que les indique arriba ejecutan este codigo:
Sub PasswordBreaker()
Sub PasswordBreaker()

' Breaks worksheet password protection.

Dim intPress As Integer

intPress = MsgBox("Preparing to disable your password...", _
vbQuestion + vbOKCancel, "Password Breaker")

Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 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 "OK, your password has been disabled. Try not to forget it again...", 0, "Password Breaker"

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

y les aparecera un mensaje como este:

1 comentario:

  1. Se puede desproteger la hoja mediante esta rutina que halla un password válido para la hoja (y que noArmani Watches Sale

    ResponderEliminar