Romper contraseñas excel

Para conseguir una contraseña que funcione dentro de una pestaña de excel protegida (solo pestañas, no hojas completas).

Te colocas en la hoja en cuestión. Alt+f11 para entrar en el modo debugger. Insertas al final el siguiente codigo.
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

Ojo con estas sentencias (hay dos ActiveSheet)
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)

y los saltos de linea si copias y pegas directamente no compila, tienes que borrarlos (vamos que Chr(i) & Chr(j) & Chr(k) & _ Chr(l) & Chr(m) & Chr(i1) & Chr(i2) & Chr(i3) & _ Chr(i4) & Chr(i5) & Chr(i6) & Chr(n) tiene que ir en la misma linea).

Cuando acabes F5 para ejecutar (tarda un rato, dependiendo de la maquina que tengas). La contraseña que te suelta no es la que has puesto, pero funciona… XD. Ojala tuviera tiempo de mirar mas.

** Otra forma de hacerlo **
Alt+f11 -> nuevo modulo -> copy&paste.

Sub Sin_pass()
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 «Pass:» & vbCr & Contraseña
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub

Ojo si haces C&p con las comillas en : MsgBox «Pass:» & vbCr & Contraseña. ejecutas el modulo en cada pestaña a la que quieras quitar la contraseña.