View Full Version : Solved: Please explain!!

05-15-2013, 04:31 PM
Hi there,

I have been given a spreadsheet that was created by a previous employee and I needed to make some amendments to it. Unfortunately the worksheet that I needed to amend was protected and nobody knew the password!

I found the following code online, which works and the sheet is now unprotected. My query is whether or not anyone out there can explain to me in laymans terms how/why this works as I simply do not understand the script. I would like to understand it so that I can see how to write this type of code myself.

Any help greatly appreciated


Sub PasswordBreaker()
'Author unknown
'Breaks worksheet password protection.
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 "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

Kenneth Hobs
05-15-2013, 07:13 PM
It is against forum policy to help break password protection or explain how. Expect to see this thread removed.

One thing I can tell you, if you step through code by F8, you can see how each step in your code works.

05-15-2013, 10:17 PM
Thanks for the info Kenneth, I hadn't realised I had gone against policy. Happy for this thread to be removed based on that comment.


05-15-2013, 11:15 PM
Very interesting code, the excel protection is very weak, the code does not find the real password but only a equivalent password