¿Alguna vez has querido anular la contraseña de una hoja de Excel y no la recordabas?.

Bueno, este truco es muy antiguo pero no por ello menos efectivo. El resultado de aplicar este truco es la obtención de una contraseña valida para desproteger la hoja de excel. Al decir que es una contraseña valida quiero decir que no es la original pero nos permite desbloquearla igualmente.

El truco consiste en una rutina de programación que al ejecutarla (y esperar un rato mientras consigue la contraseña) nos muestra un mensaje con una contraseña válida.

Para ello, el código que pondré a continuación hay que ponerlo en un módulo de visual basic de la aplicación Excel. Lo puedes encontrar en el menú de Excel "Herramientas / Macro / Editor de Visual Basic" o bien pulsando (ALT+F11) para abrir el editor, pegamos el código, cerramos el editor.

Ahora seleccionamos la hoja que queremos desproteger y ejecutamos la macro "breakit" (ALT+F8 para seleccionarla). Tras la ejecución, un mensaje dará una contraseña equivalente, y la hoja ya estará desprotegida.

Visual Basic:
  1. Sub breakit()
  2.  
  3.    Dim i As Integer, j As Integer, k As Integer
  4.    Dim l As Integer, m As Integer, n As Integer
  5.  
  6.    On Error Resume Next
  7.      For i = 65 To 66
  8.       For j = 65 To 66
  9.        For k = 65 To 66
  10.         For l = 65 To 66
  11.          For m = 65 To 66
  12.           For i1 = 65 To 66
  13.            For i2 = 65 To 66
  14.             For i3 = 65 To 66
  15.              For i4 = 65 To 66
  16.               For i5 = 65 To 66
  17.                For i6 = 65 To 66
  18.                 For n = 32 To 126
  19.  
  20.    ActiveSheet.Unprotect Chr(i) & Chr(j) & Chr(k) & _
  21.       Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _
  22.       Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  23.  
  24.    If ActiveSheet.ProtectContents = False Then
  25.       MsgBox "Un password valido es " & Chr(i) & Chr(j) & _
  26.          Chr(k) & Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) _
  27.          & Chr(i4) & Chr(i5) & Chr(i6) & Chr(n)
  28.       Exit Sub
  29.    End If
  30.                Next
  31.               Next
  32.              Next
  33.             Next
  34.            Next
  35.           Next
  36.          Next
  37.         Next
  38.        Next
  39.       Next
  40.      Next
  41.     Next
  42.  
  43. End Sub


Posts anterior y posterior:


Posts Relacionados: