begin process at 2008 09 06 20:11:43
1 237 936 membres
318 nouveaux aujourd'hui
14 314 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

OTER LA PROTECTION D'UNE FEUILLE EXCEL PAR MACRO (TABULATIONS REFAITES)


Information sur la source

Catégorie :VBA Classé sous : protection, excel, macro, vba, déprotéger Niveau : Débutant Date de création : 03/07/2002 Date de mise à jour : 03/07/2002 09:36:56 Vu : 156 702

Note :
9,64 / 10 - par 14 personnes
9,64 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (58)
Ajouter un commentaire et/ou une note

Description

La macro enleve la protection de la feuille excel active.Choisissez Outils, Macro, Visual Basic Editor et collez cette Macro. Dans la feuille active protégée, choisissez Outils, Macro, Macro puis  selectionnez la macro enleve_protection et cliquez sur Executer. La macro enlève la protection de la feuille et affiche quel est le mot de passe qui est parvenu à ce résultat.

Source

  • Sub enleve_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
Sub enleve_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

Conclusion

Testé sous Excel 97.
  • signaler à un administrateur
    Commentaire de Willi le 03/07/2002 09:59:38 administrateur CS

    Bon code à tester sur les versions ultérieur d'Exel
    Bonne prog !

    http://www.perfectvb2k2.fr.st

  • signaler à un administrateur
    Commentaire de Lolux le 03/07/2002 17:13:37

    Excellent ! Je cherchais un truc du genre depuis un moment ! ;-))))
    Tu peux expliquer un peux ton code parce que là je comprend rien...

  • signaler à un administrateur
    Commentaire de granddebutant le 04/07/2002 11:03:15

    Je ne connais pas la technique de codage de protection de feuille de Microsoft.
    Mais voilà ce que j'ai fait pour créer cette macro :
    J'ai lu quelque part qu'un mot de passe courant de feuille excel était codé sur 12 caractères. Le reste était facile. J'ai d'abord créé des boucles For...Next avec 12 variables prenant tous les caractères ascii existants (chr(0) à chr(255) ) puis je me suis aperçu que les 11 premiers caractères étaient toujours A ou B ( chr(65) ou chr(66) ) . Ensuite je n'ai eu qu' à réduire la plage de recherche du dernier caractère en fonction des résultats obtenus.
    J'espère que cette macro vous servira.
    Je suis en train de voir pour la technique de codage et le mot de passe de fichier excel.

  • signaler à un administrateur
    Commentaire de Lolux le 15/07/2002 14:56:48

    Grace à ton truc, je viens de gagner une journée de travail à copier coller des 10aines de feuillets dont le propriétaire avait oublié le mot de passe... Travail de M#£@¤rde!!!... Et là : 15 mn montre en main !
    Les logiciels qui font ça sont payants et se vendent près de 200$ sur le net...
    Merci encore !

  • signaler à un administrateur
    Commentaire de scripteur le 20/11/2002 12:45:36

    Pour des versions supérieures d'excel modifier le code comme suit

    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)

    sinon erreur de compilation
    Bon Boulot simple à comprendre et cela marche (pour les feuilles pas pour les classeurs)

  • signaler à un administrateur
    Commentaire de thieu le 03/04/2003 15:16:24

    Impecc! Thanks...    ;-)

  • signaler à un administrateur
    Commentaire de papaours le 08/08/2003 11:21:28

    tres bien ca va assez vite ;D)

  • signaler à un administrateur
    Commentaire de salade007 le 01/12/2003 10:06:55

    Sympa, mais par hasard la même chose pour le mot de passe d'un fichier est bon à prendre;S)

  • signaler à un administrateur
    Commentaire de mandrake07 le 19/12/2003 17:18:22

    sympa, util et hyper eficace.
    je l'ai utiliser sur Excel (Office XP) et il fonctionne impec sans aucune modification.
    Je te remercie pour cette macro souvent necessaire quand des bouzeux oublient leur mot de passe de protection.

    Ce serais cool d'avoir la même chose sous Word

  • signaler à un administrateur
    Commentaire de babar76 le 06/03/2004 15:23:38

    Merci et bravo pour ton code.
    ca marche pour excel 2000.Il faut juste penser à
    remettre la syntaxe des chr() sur la même ligne et
    supprimer le "_".

  • signaler à un administrateur
    Commentaire de premium0 le 22/03/2004 16:37:36

    C'est de la balle ! Voilà 2 heures que je ping tous les serveurs des développeurs fous du monde Office pour trouver cette "satanée" boucle. Je suis sur les fesses ! J'ai besoin d'auditer des centaines de répertoires ayant des fichiers XL dont la feuille 1 est protogée. En plus, ça marche sur Office 8 et Office 9. Un peu long certes mais ça me va. Merci.

  • signaler à un administrateur
    Commentaire de jmm1 le 07/07/2004 18:58:00

    Ce code est super et va beaucoup me servir. Par contre, le mot de passe que le programme VBA ressort n'est pas le mot de passe que la personne a mis pour protéger la feuille, comment avoir ce mot de passe ?

  • signaler à un administrateur
    Commentaire de arizona34 le 19/08/2004 15:44:14

    Merci et bravo

    au debut j'ai cru à la boucle infini mais 5 min aprés j'ai eu la bonne surprise ;-)

    Nickel

  • signaler à un administrateur
    Commentaire de CANOUNOUCHE le 31/08/2004 23:59:15

    Salut,

    Comment faire la même chose quand c'est le classeur en entier qui est vérouillé.
    Je n'est pas accés à VBA.

    <merci.

  • signaler à un administrateur
    Commentaire de marchalf le 10/11/2004 12:08:44

    Je te remercie pour cette source, j'avais une autre technique que j'essayerai de retrouver mais là c'est nickel. Elle marche même avec office 2003 ta soluce.
    Merci bien.

  • signaler à un administrateur
    Commentaire de Kanjar le 28/12/2004 14:41:11

    Merci et bravo également,

    Certains semblaient chercher l'équivalent pour la protection du classeur. Il suffit de changer
      ActiveSheet.Unprotect
    par
      ActiveWorkbook.Unprotect
    et
      ActiveSheet.ProtectContents
    par
      ActiveWorkbook.ProtectStructure

    Tchao

  • signaler à un administrateur
    Commentaire de jrbleboss le 07/04/2005 22:17:37

    Super cool

    10/10

  • signaler à un administrateur
    Commentaire de rovalclau le 16/04/2005 11:22:46

    Alors là Chapeau
    Pour excel 2003 - de 2mn.
    C'est mon collègue qui va être content, il avait mis un passe idiot sur une feuille et biensûr s'est empressé de l'oublier.
    Merci

    Je note le code pour le classeur au cas ou.

    10/10

  • signaler à un administrateur
    Commentaire de jrbleboss le 16/04/2005 17:35:26

    Moi ca met 20secondes. C'est peut être parce que j'ai un atlon XP 64 3500+.

    JRB

  • signaler à un administrateur
    Commentaire de philpob le 14/05/2005 12:13:14

    Bon travail, a peaufiner pour la lecture du mot de passe, apparemment le mot relevé ne correspond pas!

  • signaler à un administrateur
    Commentaire de astriders le 26/05/2005 07:20:52

    bonjour, ben moi je dois pas êrte douée, j'y arrive pas. QUelqu'un peut-il détailler davantage la procédure SVP?
    en fait, quand je clique sur visualbasic editor, après je colle où la macro ? car moi j'ai un écran excel vide à ce moment là...
    Meerci d'avance.

  • signaler à un administrateur
    Commentaire de spookiethebee le 12/07/2005 23:15:12

    Cool merci ça fonctionne !!!!

  • signaler à un administrateur
    Commentaire de TopScritch le 20/07/2005 19:12:46

    Super comme source

  • signaler à un administrateur
    Commentaire de boudas le 22/07/2005 17:26:18

    ce code marche nickel ! merci beaucoup :)
    j'ai aussi un autre probléme, un utilisateur avait bloqué la feuille par un mot de passe et aussi le classeur, est ce qu'il serait possible d'adapter le code pour le déprotéger ?

    merci :)

  • signaler à un administrateur
    Commentaire de michel_m le 12/09/2005 19:03:22

    Bonjour,

    Je découvre ce forum

    Autre code pour enlever la protection d'une feuille Excel:

    Sub deproteger()

    With ActiveSheet
            .Protect vbNullString, , , , True
            .Range("A1").Copy .Range("A1")
            .Unprotect vbNullString
    End With
    MsgBox "Mot de passe enlevé"

    End Sub

    Instantané quelquesoit la longueur du mot de passe

    A+
    Michel

  • signaler à un administrateur
    Commentaire de josswel le 20/09/2005 07:34:41

    comment faire si meme dans le vb on demande un mot de passe avant de pouvoir ajouter ton macro ?

  • signaler à un administrateur
    Commentaire de jfwfr le 21/09/2005 18:59:33

    J'ai le même problème que JOSSWELL à savoir que je ne peux pas éditer de Macro ni en créer de nouvelles dans la feuille active pour cracker le code en collant la macro proposée...

    Comment faire?

    Merci bcp...

  • signaler à un administrateur
    Commentaire de michel_m le 24/09/2005 09:05:42

    Bonjour,

    Tu crées un nouveau classeur avec la macro deprotéger.

    Ensuite tu mets la feuille à déprotéger en fenetre active

    Tu lance la macro avec outil macro macro avec l'option macro dans: "tous les classeurs ouverts.

    Cette macro ne déprotège pas le mdp classeur ni le mdp vba

  • signaler à un administrateur
    Commentaire de jfwfr le 25/09/2005 11:42:26

    Merci bcp pour cette info, j'essayerai ça dès lundi car je n'ai pas le fichier avec moi...

  • signaler à un administrateur
    Commentaire de yondzi le 15/11/2005 11:27:25

    super!
    j'ai testé la macro sur un fichier excel 2003 et ça marche parfaitement!
    respect à toi granddebutant

  • signaler à un administrateur
    Commentaire de chabi11 le 07/12/2005 17:29:42

    Office 2003 : la macro de granddébutant est parfaite ! 10/10
    celle de Michel_M ne fonctionne pas
    Pour la variante de Kanjar (pour le classeur) celui-ci doit être
    protégé en écriture mais accessible en lecture seule... sinon on fait comment pour le rendre actif ? hein ! (...ActiveWorkbook.Unprotect)

    Merci a eux

  • signaler à un administrateur
    Commentaire de khal123 le 22/12/2005 22:58:35

    salut et merci à granddébutant pour son virus(macro)
    destructeur de code des feuilles et classeur après correction
    j ai un classeur protegé par la cellule d12 par un code cinq chiffres
    je cherche à le cracker aidez moi et merci
    dz_khaoula@yahoo.fr

  • signaler à un administrateur
    Commentaire de arianefurer le 02/01/2006 18:51:39

    Bonsoir

    Pour la macro enlever la protection, impeccable, mais il ne trouve pas le mot de passe juste

    merci de m aider

    ariane

  • signaler à un administrateur
    Commentaire de thony95110 le 03/01/2006 10:19:13

    ariane je ne comprend pas pourquoi tu cherche le mot de passe exact? si tu veut en remettre un tu en met un perso. enfin si la modif ne devait pas se voir et tu doit obligatoirement remettre le mot de passe....tampis pour toi lol.

  • signaler à un administrateur
    Commentaire de romeo59181 le 09/01/2006 07:02:55

    Bonjour,

    chez moi ça ne marche pas ...

    J'obtiens le message d'erreur suivant :

    Erreur de complation :

    Erreur de syntaxe

    Merci par avance de me donner la marche à suivre pour débloqué ma feuille...

    Dans l'attente de vous lire,

    Romeo59181

  • signaler à un administrateur
    Commentaire de lafonbe75 le 05/02/2006 21:18:48

    Bonjour, quelqu'un a t-il la réponse à la question sous jacente à celle de josswel ? comment faire pour déprotéger les macro (a savoir si on n'a pas acces au vb dans excel ? On demande un mot de passe avant de pouvoir ajouter ton macro ou modifier/visualiser celles qui existe ?
    Merci pour votre aide.
    Ben

  • signaler à un administrateur
    Commentaire de chabi11 le 06/02/2006 09:40:08

    Pour déprotéger le classeur, il n'est absolument pas necessaire que le code soit dans celui-ci.
    tu actives le classeur a déprotéger et par la commande outils / macro / macros tu vas chercher ta macro de déprotection dans le module VBA de la feuille de ton choix.

    Yves

  • signaler à un administrateur
    Commentaire de jfwfr le 06/02/2006 15:25:20

    Bonjour, j'ai essaye les 2 code proposes, mais cela ne marche que pour la protection de feuille. Quelau'un saurait-il comment enlever la protection VBA du Projet Macro d'un WorkBook? (celle qui s'active via le VBA Editor, dans Outil /Protection ... et cochant la case 'proteger le projet en lecture'

    Merci bcp
    JF

  • signaler à un administrateur
    Commentaire de nasserb le 15/02/2006 16:30:39

    merci ceci m'a permis de gagner de la promotion
    mais pour le classeur protegé avant ouverture comment faut il proceder?

  • signaler à un administrateur
    Commentaire de nightflyer le 27/02/2006 22:21:19

    Salut, moi je peux confirmer que les deux codes marchent (testé sous excel 2003), sous conditions il n y a pas de combinaison avec une protection classeur. Dans ce cas, ôter la protection d'une feuille à l'intérieur fonctionne (MICHEL), mais pas la code de GRANDDEBUTANT (reconnaissance)pour connaitre le code.
    pour le pb du classeur, le remplacement dans le code ne suffit pas (KANJAR), il ne reconnait qu'onze (!) caractères!
    Suggestion: est-ce un pb de mélange entre miniscule/majuscule et/combinaison avec des chiffres?????
    NIGHTFLYER

  • signaler à un administrateur
    Commentaire de nightflyer le 27/02/2006 22:22:11

    Salut, moi je peux confirmer que les deux codes marchent (testé sous excel 2003), sous conditions il n y a pas de combinaison avec une protection classeur. Dans ce cas, ôter la protection d'une feuille à l'intérieur fonctionne (MICHEL), mais pas la code de GRANDDEBUTANT (reconnaissance)pour connaitre le code.
    pour le pb du classeur, le remplacement dans le code ne suffit pas (KANJAR), il ne reconnait qu'onze (!) caractères!
    Suggestion: est-ce un pb de mélange entre miniscule/majuscule et/combinaison avec des chiffres?????
    NIGHTFLYER

  • signaler à un administrateur
    Commentaire de EPS32HAY le 16/03/2006 11:12:16

    Excellent ca marche c'est trop cool. Je peux enfin modifier le fichier d'une personne partie en retraite.

    Merci Beaucoup

  • signaler à un administrateur
    Commentaire de Gourbish le 30/03/2006 20:35:29

    Merci bien granddebutant !
    Impeccable !
    Et merci aussi à scripteur pour les versions récentes...

  • signaler à un administrateur
    Commentaire de Gourbish le 30/03/2006 20:35:48

    Merci bien granddebutant !
    Impeccable !
    Et merci aussi à scripteur pour les versions récentes...

  • signaler à un administrateur
    Commentaire de Gourbish le 30/03/2006 20:37:07

    Merci bien granddebutant !
    Impeccable !
    Et merci aussi à scripteur pour les versions récentes...

  • signaler à un administrateur
    Commentaire de PHIPHI974 le 31/03/2006 15:04:37

    Merci à granddebutant pour la macro et à Scripteur pour la mise à jour.
    Pour les problèmes d'accés à Visual Basic voila comment j'ai procédé:
    Ouvrir le classeur excel où il y a la feuille à déprotéger et insérer une feuille de calcul.
    Avec la barre d'outils "Formulaire" créer un bouton et sélectionner "Nouvelle" dans la boite de dialogue ouverte. Dans le module 1 ainsi créé, recopier la macro de grand débutant avec la modif de Scripteur pour les versions récentes.
    Entre la ligne
    Sub enleve_protection()
    et
    Dim a, b, c, d, e, f, g, h, i, j, k, l As Integer
    ajouter la ligne :  Sheets ("Nom de la feuille à déprotéger").Activate
    et voila le tour est joué
    En fait en cliquant sur le bouton, la macro va activer la feuille à déprotéger et exécuter la macro de granddébutant.
    J'ai utilisé cette solution car je ne suis pas arrivé à
    coller la Macro de granddébutant dans la feuille active protégée

    PHIPHI974

  • signaler à un administrateur
    Commentaire de econs le 31/03/2006 16:16:40 administrateur CS

    Note bien que quand tu fais :

    Dim a, b, c, d, e, f, g, h, i, j, k, l As Integer

    seul l est de type Integer, les autres sont de type Variant.

    A pert çà, c'est nickel

  • signaler à un administrateur
    Commentaire de chepakoidir le 02/04/2006 03:15:13

    Bonjour,

    Voici l'explication du fonctionnement de la macro de déprotection de Granddebutant.  sa macro marche mais elle est redondante.  la boucle fait 194560 itérations au maximum, il n'en faut que 32768.
    Voici une macro basée sur la méthode de hachage utilisée par Microsoft. Avec commentaires !
    Désolé si ça prend de la place mais je découvre ce forum et je n'y connais rien au mode d'emploi. et je trouve pas !

    Chepakoidir

    -------------------------------------------------------------------------
    Attribute VB_Name = "Deprotection"
    '
    'Déprotection sans échec du classeur ou de la feuille Excel avec extraction de mot de passe.
    '
    'Auteur : CHEPAKOIDIR
    '
    'PRINCIPE :
    'Excel 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 2^15 = 32768 possibilités de clés (de 0 à 32767) en tout et pour tout (c'est dire la fiabilité !).
    'Il existe ainsi des milliards de mots de passe qui donnent la même clé. Ils sont EQUIVALENTS. On peut protéger
    'avec un mot de passe et déprotéger avec un équivalent, reprotéger avec un autre équivalent, etc.
    'Ceci pour répondre à ceux qui voudraient trouver le "bon" mot de passe. C'est impossible et ça n'a aucune importance,
    'si vous voulez pirater un classeur sans que son propriétaire s'en rende compte (c'est pas bien ça), déprotégez-le puis
    'reprotégez-le avec le mot de passe équivalent trouvé, il n'y verra que du feu.
    '
    'CALCUL DE LA CLE PAR EXCEL :
    'Microsoft n'en fait pas un secret et l'on peut trouver facilement la méthode sur internet.
    'On applique à chaque caractère du mot de passe une rotation à gauche sur 15 bits. Le premier caractère tourne de 1 bit,
    'le deuxième caractère tourne de 2 bits, etc. Comme c'est une rotation sur 15 bits, le 15ème caractère tourne de 0 bits, le
    '16ème tourne de 1 bit et on recommence par tranche de 15 ...
    'Tous les résultats des rotations sont ensuite combinés avec des Ou Exclusifs (XOR pour les prétentieux).
    'Puis on fait encore un ou exclusif entre le résultat final et la longueur du mot de passe.
    'Enfin, on fait un dernier ou exclusif avec la constante CE4Bh. Notez que les ou exclusifs sont commutatifs.
    'La clé ainsi calculée est stockée dans l'enregistrement numéro 13h du stream de la feuille ou du classeur.
    'Par exemple, le mot de passe "toto" donne la clé CA4Bh. Le mot de passe "AAABABBBBAA/" donne la même.
    '
    'ALGORITHME :
    'Cette macro utilise 15 boucles imbriquées de deux valeurs. Peu importe les valeurs, elles doivent juste être deux valeurs CONSECUTIVES
    'et IDENTIQUES pour toutes les boucles (pour assurer que les 32768 possibilités soient couvertes). Ces deux valeurs doivent aussi être
    'les codes ASCII de caractères acceptés par Excel dans les mots de passe. Exemples : "0" et "1" ou "A" et "B" ou "x" et "y".
    'Le bit de poids faible de chaque variable de boucle correspond ainsi à 1 bit de la clé (0 ou 1 = 2 valeurs). Les autres bits des variables sont
    'sans importance puisqu'ils sont constants et l'on est sûr de parcourir les 32768 possibilités mais pas forcément dans l'ordre,
    'ce qui n'a aucune importance.
    'A chaque tour, les 15 caractères sont concaténés pour former le mot de passe à essayer et on boucle jusqu'à trouver celui qui marche.
    'Sur un pentium à 2 GHz normalement constitué, il faut un peu plus d'une minute dans le pire des cas pour faire sauter une protection.
    '
    'AUTRE METHODE :
    'Il est possible de récupérer la clé de la feuille ou du classeur dans le fichier Excel (voir doc microsoft) et de calculer directement un mot de
    'passe équivalent. Dans ce cas, il faut 2 secondes.
    'Au boulot !!!
    '

    'ATTENTION, la feuille ou le classeur à déprotéger doivent être actifs au lancement de la macro et il vaut mieux désactiver ses macros.
    Sub Deproteger()

        Dim A As Byte, B As Byte, C As Byte, D As Byte, E As Byte
        Dim F As Byte, G As Byte, H As Byte, I As Byte, J As Byte
        Dim K As Byte, L As Byte, M As Byte, N As Byte, O As Byte
        Dim Reponse As Byte, Temps As Variant
        Dim Cible As Object, Passe As String
        
    '   Demande ce qu'il faut déprotéger.
        Reponse = MsgBox("Voulez-vous déprotéger le classeur actif ?" & vbCrLf & "Si vous répondez non, c'est la feuille active qui sera déprotégée.   ", _
                                            vbYesNoCancel, "Déprotectionnateur")
                                            
        On Error Resume Next
    '   Teste ce qu'il faut déprotéger.
        Select Case Reponse
            Case vbYes
    '           Définit le classeur actif comme cible à déprotéger.
                Set Cible = ActiveWorkbook
    '           Teste si le classeur est protégé.
                If Not (Cible.ProtectStructure Or Cible.ProtectWindows) Then
                    MsgBox "Le classeur actif n'est pas protégé.   " & vbCrLf & vbCrLf & "Andouille !", vbOKOnly, "Déprotectionnateur"
                    Exit Sub
                End If
    '           Teste si le classeur est protégé sans mot de passe.
                Err.Clear
                Cible.Unprotect vbNullString
                If Err = 0 Then
                    MsgBox "La protection du classeur actif a été supprimée.   " & vbCrLf & "Il n'y avait pas de mot de passe. Petit rigolo !", vbOKOnly, "Déprotectionnateur"
                    Exit Sub
                End If
            Case vbNo
    '           Définit la feuille active comme cible à déprotéger.
                Set Cible = ActiveSheet
    '           Teste si la feuille est protégée (on ne teste pas UserInterfaceOnly qui ne peut être positionné que par macro et n'est pas enregistré avec le classeur).
                If Not (Cible.ProtectContents Or Cible.ProtectDrawingObjects Or Cible.ProtectScenarios) Then
                    MsgBox "La feuille active n'est pas protégée.   " & vbCrLf & vbCrLf & "Patate !", vbOKOnly, "Déprotectionnateur"
                    Exit Sub
                End If
    '           Teste si la feuille est protégée sans mot de passe.
                Err.Clear
                Cible.Unprotect vbNullString
                If Err = 0 Then
                    MsgBox "La protection de la feuille active a été supprimée.   " & vbCrLf & "Il n'y avait pas de mot de passe. Quelle burne !", vbOKOnly, "Déprotectionnateur"
                    Exit Sub
                End If
            Case Else
    '           Annulation demandée par l'utilisateur.
                MsgBox String(14, " ") & "Ciao !", vbOKOnly, "Déprotectionnateur"
                Exit Sub
        End Select
            
    '   Note l'instant de départ.
        Temps = Timer

    '   Boucles de calcul des mots de passe. On utilise ici les codes ascii des caractères "0" et "1".
        For A = 48 To 49
         For B = 48 To 49
          For C = 48 To 49
           For D = 48 To 49
            For E = 48 To 49
             For F = 48 To 49
              For G = 48 To 49
               For H = 48 To 49
                For I = 48 To 49
                 For J = 48 To 49
                  For K = 48 To 49
                   For L = 48 To 49
                    For M = 48 To 49
                     For N = 48 To 49
                      For O = 48 To 49
    '                       Calcule le mot de passe.
                            Passe = Chr(A) & Chr(B) & Chr(C) & Chr(D) & Chr(E) & Chr(F) & Chr(G) & Chr(H) & Chr(I) & Chr(J) & Chr(K) & Chr(L) & Chr(M) & Chr(N) & Chr(O)
    '                       Essaie de déprotéger la cible.
                            Err.Clear
                            Cible.Unprotect Passe
    '                       Teste si la cible est bien déprotégé.
                            If Err = 0 Then
    '                           Si oui, affiche le mot de passe et sort.
                                MsgBox "La protection a été supprimée en " & Timer - Temps & " secondes.   " & vbCrLf & "Le mot de passe équivalent trouvé est :" & _
                                                 vbCrLf & vbCrLf & String(28, " ") & Passe, vbOKOnly, "Déprotectionnateur"
                                Exit Sub
                            End If
                      Next
                     Next
                    Next
                   Next
                  Next
                 Next
                Next
               Next
              Next
             Next
            Next
           Next
          Next
         Next
        Next

    '   Message impossible à atteindre.
        MsgBox "Mot de passe introuvable." & vbCrLf & vbCrLf & "C'est pas normal !!!", vbOKOnly, "Déprotectionnateur"
        
    End Sub

  • signaler à un administrateur
    Commentaire de tiloudeux le 15/06/2006 16:53:02

    Merci GRANDDEBUTANT et CHEPAKOIDIR ;-)

  • signaler à un administrateur
    Commentaire de skyflo le 21/07/2006 08:25:45

    Merci bcp pour votre aide, je suis sauvé. Cette macro m'a permis d'économiser un tps considérable. Mais, il y a tjrs un mais...une fosi le code de ma page enlevée, je n'accède toujours pas au macro...car le créateur de mon fichier a mis un code aussi MVB. comment faire pour le faire sauter???

    Merci d'avance

  • signaler à un administrateur
    Commentaire de totoche31000 le 04/09/2006 16:58:06

    Voila il y a les protections des feuilles excel pour lesquelles vos codes marchent tres bien mais peut on deproteger le code sous vba avec une macro si oui comment s il vous plait???

  • signaler à un administrateur
    Commentaire de bruyetde le 18/09/2006 13:57:03

    Bonjour,

    Dans vos codes on ne récupère que des 0 1 et pas le mot de passe. Y'a moyen de le retouver (pour le remettre !)
    Merci

  • signaler à un administrateur
    Commentaire de Rhoulz le 07/11/2006 19:15:14

    (C'est exactement le meme code que disponible (mais un cachée) sur le site de ASAP utilities ...) enfin c'est sympa de la difuser ici.

    Un grand merci á Chepakoidire pour cette explication que je cherchais depuis un petit temps déjà.

  • signaler à un administrateur
    Commentaire de peisinoe le 10/11/2006 17:53:28

    Merci pour ce code. Je suis tombée dessus par hasard.

    Est-ce que qqn sait comment mettre des protections sur des feuilles et un classeur excel sans faire sauter les macros?

  • signaler à un administrateur
    Commentaire de iscc le 22/12/2006 11:42:13

    Super utile, merci à tous les contributeurs !

  • signaler à un administrateur
    Commentaire de bouc_man le 29/03/2007 13:34:55

    J'utilise excel 2004 pour Mac version11.2.3 CA MARCHE
    Un grand merci GRANDDEBUTANT, cette macro enlève sans probleme la protection et donne effectivement un mot de passe qui marche pour débloquer la feuille excel

  • signaler à un administrateur
    Commentaire de terzouille le 19/04/2007 15:06:33

    Concernant les versions ultérieures de Excel et la suppression des &_ dans le code initial (message de scripteur de 2002) : inutile de tout mettre sur une ligne : la syntaxe correcte pour le passage à la ligne est & _ (avec un espace entre le  & et le _). il suffit donc de corriger le code initial.

  • signaler à un administrateur
    Commentaire de cactus01 le 22/02/2008 15:19:11

    Bonjour à tous,

    Merci à Granddébutant pour son excellent travail (c'est du travail de PRO, pas de débutant)et merci également à tous les autres.

    Je n'ai malheureusement pas très bien compris, comment enlever le mot de passe de Visual Basic, lorsque l'on veut accéder au code (Modules etc) en ouvrant le Visual Editor. Car il y a beaucoup de problèmes avec les fichiers MS Office 2000,(même sans mot de passe),"c'est du Micro$oft".

    Donc est-ce que quelqu'un pourrait m'expliquer comment enlever le mot de passe de VBA, car j'ai essayé l'excellent code de "CHEPAKOIDIR" mais il m'affiche à chaque fois "Andouille", donc je suppose qu'il n'est pas prévu pour celui de VBA.

    Tout ce que j'ai trouvé sur le web, ce sont des versions payantes (même la version démo, ne fonctionne pas).

    J'avais trouvé à l'époque un programme pour enlever le mot de passe d'ouverture de fichiers, mais pas moyen de remettre la main dessus, est-ce que quelqu'un aurait également une idée à ce sujet.

    Donc si quelqu'un à une solution à mes deux problèmes, je le remercie par avance.

Ajouter un commentaire

Pub



Appels d'offres