Désactiver un mot de passe sur une feuille Excel

Dans un précédent article, j’expliquais comment protéger les modifications d’une feuille d’un classeur Excel avec un mot de passe, ou encore comment enregistrer un fichier en protégeant son accès ou sa modification par un mot de passe. Mais que se passe-t-il quand on perd ce fameux mot de passe ? A moins de n’entrer qu’un seul mot de passe pour l’ensemble de vos besoins, que celui-ci soit tatoué sur l’oreille de votre chien, ou qu’il fasse partie des listes de mots de passe interdits sur Twitter car trop faciles à deviner, vous aurez bien du mal à revenir dessus.

Il existe, bien entendu, des solutions pour les deux cas. Vous vous rendrez vite compte qu’un mot de passe sur un fichier Excel ne vaut que pour des utilisateurs débutants ou moyens (mais surtout non lecteurs de ce blog…) et qui n’ont pas idée des possibilités offertes par le VBA, ni de l’existence de programmes de suppression de verrous (légaux bien sûr, nous ne sommes pas dans le hacking de haut niveau). Cet article, s’il vous ouvre une porte vers des levées d’interdits sur les fichiers que vous recevez ou ne pouvez consulter en l’état, a principalement pour but de vous sensibiliser au fait que les mots de passe ne sont pas une grande sécurité face à un utilisateur averti.

Mon but n’étant pas de vous amener vers des programmes de suppression de mots de passe, je me contenterai de vous indiquer qu’en fouillant un peu sur Google, vous trouverez rapidement des programmes qui utilisent des méthodes de recherches de masse pour identifier un mot de passe d’un fichier. Le plus souvent, il vous faudra vous acquitter de la licence pour voir apparaître le précieux sésame qu’il a identifié et qui reste le dernier obstacle entre vous et les informations qui vous sont cachées. Sachez donc que ce genre d’outils existe.

En revanche, voici une macro qui vous permettra de supprimer un mot de passe sur un onglet, dans le but de désactiver la protection contre les modifications de cette feuille. Etant donné que vous êtes en mesure de visualiser son contenu, l’intérêt est surtout de reprendre la main sur un fichier, peut-être créé par un ancien collègue depuis longtemps parti vers d’autres horizons, mais en emportant ses codes d’accès.

Plan de site

Code VBA pour désactiver le mot de passe Excel

Aussi, dans ce fichier, lancez Visual Basic (ALT + F11), et dans le classeur, insérez un nouveau module. Entrez le code suivant :

Sub EnleverProtectionFeuilleExcel()
       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

Il n’en faut pas plus. Testez la nouvelle macro en vous plaçant dans l’onglet à déprotéger, puis exécutez la macro. Celle-ci va tourner pendant le temps nécessaire à la suppression du mot de passe puis vous proposer un nouveau mot de passe. Enregistrez votre fichier et la protection est désactivée.

Demandez maintenant à vos collègues de vous tester et vous pourrez démontrer à quel point vous êtes un gourou d’Excel !

Un outil facile prêt à l'emploi

Vous pouvez également télécharger un outil Excel basé sur cette méthode: XLSheetUnlocker: déverrouillage de Feuilles

Avantages:

  • il est en français
  • facile à utiliser pour ceux qui ne maîtrisent pas VBA (interface Excel)
  • fonctionne même si le code VBA de votre fichier est verrouillé
  • permet de déverrouiller toutes les Feuilles d’un Classeur d’un coup

Importante remarque sur la version des fichiers Excel

Attention, toute cette méthode fonctionne pour les fichiers faits dans Excel versions 97-2003, 2007 et 2010. Dans Excel 2013, Microsoft a changé la méthode de chiffrement des fichiers Excel et donc cette méthode ne fonctionnera pas…  Au moins pas directement.

Solution: ouvrez le fichier Excel récent (fait avec Excel 2013 ou 2016) et sauvegardez le comme un fichier .xls (Excel 97-2003). Utiliser ensuite la méthode de déverrouillage sur ce fichier .xls. Et le tour est joué!

Bon déverrouillage !



40 réflexions sur “Désactiver un mot de passe sur une feuille Excel”

  1. bonjour
    j’ai un fichier excel que j’utilisais dans mon ancienne société
    je le trouvais pratique j’aurais aimé m’en servir mais il y a des mots de passes
    Est-ce que vous pouvez me le déverrouiller j’ai essayé je n’y suis pas arrivée
    merci

  2. Incroyable, un grand merci.
    J’ai lutté dans un premier temps avec des erreurs de syntaxe :
    – les retours charriots à supprimer au début des lignes commençant par ActiveSheet.Unprotect et MsgBox
    – des espaces en trop ou manquants (je ne sais plus au moment de taper ce commentaire)
    – remplacer les caractères [«] et [»] par [« ]
    Salutations

  3. Génial merci 🙂 moi qui n’avait jamais fait de macro ni ouvert VB de ma vie, j’ai tenté sans voir qu’il y avait des commentaires. Comme j’avais un msg d erreur, j’ai essayé de modifier des trucs (J’ai vu que le texte en rouge disparaissait quand l’erreur était réparée), j’ai cherché un peu sur le net et vu que les guillemets pouvaient être à modifier et Ô Miracle cela a marché !!!

  4. Bonjour, tout est bien marché mais quand je clique sur exécuter la macro, un message qui s’affiche (Impossible d’exécuter le code en mode d’arrêt).
    Merci pour votre aide

  5. Je n’arrive pas à créer un nouveau module comme l’indiquez. Dès que je fais (ALT+F11) on me demande un mot de passe. aidez moi svp

  6. Pour les onglets vérouillés en saisie, on peut très facilement ouvrir le fichier Excel dans le tableur de Google ou dans Open Office.
    Les petits camarades de Microsoft fait sauter automatiquement les verrous mis en place.

  7. Bonjour, je ne sais pas si cette macro peut s’appliquer à mon cas. J’ai une vielle macro faite de Macro Excel 4. L’onglet qui se nomme Macro contient toutes les fonctions visibles mais cependant la feuille ne permet pas de visualiser son code. J’ai fait tourner votre macro mais le résultat est toujours le même. Auriez-vous une idée ? Merci d’avance de votre aide.

    1. Bonjour,
      Cela doit être faisable. Je n’ai pas fait de code pour ça mais ça pourrait faire partie d’un article futur. Je sais que pour un classeur, il existe des logiciels qui permettent ce genre de choses.

  8. Bonjour,

    Y a t-il moyen d’afficher le mot de passe ? car le msgbox n’affiche pas le bon mot de passe. Par exemple, j’ai protégé la feuille avec un bon vieux « toto » et il me ressort « AAABABBBBAA/ ». Comment puis-je faire la conversion ?

    Merci d’avance

  9. Bonjour
    Ca marche super bien mais je ne comprend pas le code… Il ne me sort jamais le bon mot de passe. La feuille est dévérouillée mais le mot de passe « satisfaisant » n’a rien a voir avec l’original. Est il possible qu’en plus de dévérouiller la feuille, la macro affiche le mot de passe ?
    Cdt

    1. Bonjour,
      Vous devez avoir une erreur dans la recopie du code. Le IF est bien présent et se trouve dans le bloc après FOR I = 32 TO 126
      Ce bloc se terminant par END IF.
      Peut-être cela vient d’un espace manquant aussi.

    1. là comme ça… non…
      mais tu ne peux pas ouvrir une macro dans un autre fichier et lui demander de fonctionner sur le fichier ouvert ? en utilisant active.workbook sur la macro et en la lançant depuis le fichier protégé ouvert ?

      1. J’ai trouver une solution qui consiste a ouvrir excel avec 7zip 😉 ça va faire un moment donc je ne me souviens plus très bien des étapes à faires :$

        Cordialement,
        Thomas 🙂

  10. Bonjour,

    Je le saisis dans le module là ou on écrit le code, mais rien à faire. y me dit erreur de syntaxe à chaque fois,que se soit avec Excel 2007 ou 2010

    1. OK, j’ai testé et j’ai trouvé une erreur dans la 1ère ligne. Après le G, il manque une « , ».
      Ensuite, j’ai remis sur une seule ligne (dans le texte, un retour à la ligne est identifié alors qu’il n’en faut pas) celles qui commencent par Activesheet et MsgBox.
      Enfin, j’ai remplacé les guillements du texte par des guillemets de ce style : « .
      Et là, ça fonctionnera mieux.
      Désolé mais c’est vrai que je ne l’avais pas testé en copier-coller depuis mon article, donc je ne comprenais pas pourquoi le code ne marchait pas. Merci de m’avoir montré ce souci ! 🙂

      1. Bonjour,
        La macro ne fonctionne pas.
        J’ai le message suivant:
        « impossible d’exécuter le code en mode arrêt »
        Devant m’absenter qq jours, j’abandonne pour aujourd’hui et viendrais voir si j’ai une proposition de solution jeudi 31
        D’avance merci

    1. Bonjour,
      J’ai utilisé plusieurs fois cette macro sans soucis. Je pense qu’il s’agit soit d’un problème avec une virgule, soit une  »
      A quelle ligne le problème se pose-t-il ?
      Quel message avez-vous exactement ?

      1. Erreur de compilation et erreur de syntaxe

        Il me souligne en jaune cette phrase
        Sub enleve_protection()

        Je tiens à dire que je n’ai que copier coller le code dans le module.

        Merci pour votre aide

Répondre à boby44 Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.