Comment supprimer la protection d’une feuille de classeur Excel sans connaitre le mot de passe ?

Si vous avez décidé de protéger le contenu d’une feuille de classeur Excel par un mot de passe et que manque de chance, vous ne vous souvenez pas de ce fameux mot de passe, il existe une solution!

Excel-lock

Il faut savoir que ; lorsque vous mettez un mot de passe sur une feuille de classeur Excel (pour vérouiller l’accès à certaines cellules par exemple), le logiciel ne mémorise pas le mot de passe mais une clé sur 15 bits calculée à partir de ce mot de passe.

Il y a donc des milliards de mots de passe qui ont une clé équivalente puisqu’il y a seulement 2^15 possiblités de clés (32 768 possibilités).

On peut protéger une feuille avec un mot de passe et la déprotéger avec un équivalent, reprotéger avec un autre équivalent etc…

Place au test, il vous suffit d’insérer le code dans un module et d’exécuter la macro en faisant ALT+F8 ou en affectant la macro à un bouton :

[vb]

Sub supprimer_protection()

Dim a, b, c, d, e, f, g, h, i, j, k, l 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 f = 65 To 66
For g = 65 To 66
For h = 65 To 66
For i = 65 To 66
For j = 65 To 66
For k = 65 To 66
For l = 32 To 126
ActiveSheet.Unprotect Chr(a) & Chr(b) & Chr(c) & _
Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) & _
Chr(i) & Chr(j) & Chr(k) & Chr(l)
If ActiveSheet.ProtectContents = False Then
MsgBox "La Protection a été enlevée – Un mot de passe satisfaisant est :" & Chr(a) & Chr(b) & _
Chr(c) & Chr(d) & Chr(e) & Chr(f) & Chr(g) & _
Chr(h) & Chr(i) & Chr(j) & Chr(k) & Chr(l)
Exit Sub
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next

End Sub

[/vb]

Bien sur, vous pouvez aussi utiliser cette méthode pour accéder aux données d’un fichier qu’un collègue aurait un tout petit peu trop protégé 🙂