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 AVEC UNE MACRO


Information sur la source

Catégorie :VBA Niveau : Débutant Date de création : 02/07/2002 Date de mise à jour : 02/07/2002 19:57:45 Vu : 54 130

Note :
9,67 / 10 - par 3 personnes
9,67 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

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

Description

la macro désactive la protection des feuilles Excel
 

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

Tout est dans le code (testé sous excel 97)

 

Commentaires et avis

signaler à un administrateur
Commentaire de Marcus94 le 24/12/2003 17:17:04

Je l'ai testé sous excel 2000, voilà ce qu'affiche la compil  ?? :
Erreur de compilation , erreur de syntaxe sur les lignes :

ActiveSheet.Unprotect Chr(a) & Chr(b) & Chr(c) &_
Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) &_

Marcus.

signaler à un administrateur
Commentaire de NaVince le 03/08/2004 14:42:56

Exact, il y a juste une toute petite erreur de frappe de notre ami granddebutant : lorsque l'on veut retourner à la ligne, il faut mettre un espace entre le "&" et le "_". La ligne correctement écrite donne :

ActiveSheet.Unprotect Chr(a) & Chr(b) & Chr(c) & _
Chr(d) & Chr(e) & Chr(f) & Chr(g) & Chr(h) & _ ... et ainsi de suite.

Sinon, ça marche particulièrement bien ! Félicitations granddebutant !

Vince.

signaler à un administrateur
Commentaire de allo300 le 06/09/2005 13:37:13

j'arrivve pas a trouvé la zone se saisie du code...
ile me demande toujours un mot de passe??????????

signaler à un administrateur
Commentaire de salsitawapa le 23/10/2005 22:24:20

Fonctionne très bien une fois les petites fautes corrigée :

    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

signaler à un administrateur
Commentaire de salsitawapa le 23/10/2005 22:25:22

Merci à  granddebutant et  NaVince

signaler à un administrateur
Commentaire de nasserb le 03/02/2006 15:16:07

merci camarade du monde genereux dans la transmission de la connaissance

signaler à un administrateur
Commentaire de le breton fou le 09/02/2006 00:06:21

Je suis tellement nul que je n'ai pas compris la moitié de ce que vous expliquez. J'ai un classeur excel protégé et je rame pour lui ôter cette sinistre protection y a t'il quelqu'un(e) à qui je peux envoyer par mail ce fichu fichier prévisionnel (qui n'a rien de secret mais il est vital pour moi de pouvoir le modifier) pour qu'il lui vire cette clé? d'avance merci beaucoup de votre aide.

signaler à un administrateur
Commentaire de crewaskee le 18/08/2006 09:45:17

Cette macro fonctionne a merveille, merci.

signaler à un administrateur
Commentaire de tagadas le 05/09/2006 13:52:55

Macro fonctionne trés avec excel 2003, merci encore ;-))

signaler à un administrateur
Commentaire de Brianeau le 11/01/2007 20:06:18

Juste pour mise à jour à  date : je confirme, fonctionne toujours sur Excel 2003.
Merci à tous.

signaler à un administrateur
Commentaire de yourspinner le 19/03/2007 15:10:08

Merciiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii :)

signaler à un administrateur
Commentaire de didomixe le 08/08/2007 12:34:30

Salut j'ai créer une base de données excel et j'ai oublié le mot de passe pouvez-vous me donner un coup de main?

signaler à un administrateur
Commentaire de MIGMAG1 le 25/02/2008 14:42:09

Bonjour,
Que faut-il faire pour bloquer l'exécution de cette macro afin de pouvoir concevoir des logiciels sous excel et vivre avec ??
MNG

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.