IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Feuille protégée par plusieurs mots de passe possibles [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier Avatar de DonkeyPuncher
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2013
    Messages : 56
    Points : 113
    Points
    113
    Par défaut Feuille protégée par plusieurs mots de passe possibles
    Bonjour à tous,

    Mon programme VBA a pour but de charger des classeurs Excel de même types et de même structures.
    Dans mon code j'ai une partie dé-protection des feuilles qui marche à marveille.

    Cependant, des nouveaux fichiers vont arriver, toujours avec la même structure, mais avec un nouveau mot de passe (sur chacune des feuilles du classeur).
    Du coup, je vais devoir adapter mon programme afin de prendre en compte l'ancien, et le nouveau mot de passe. Le but étant, à terme, de migrer totalement avec le nouveau mot de passe.

    Je viens vers vous afin de savoir ce que vous pensez de ma façon de gérer ce traitement, et si vous avez un moyen plus propre, adéquat pour se faire :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    On Error GoTo otherPWD 'si la feuille est protégée par le nouveau code, la ligne suivante retournera une erreur
               .UnProtect "ancienCode" ' On déprotège la feuille // si erreur on passe à otherPWD
               GoTo suite 'si on est encore là c'est que c'était le bon code donc on passe à la suite du programme
    otherPWD:
               .UnProtect "nouveauCode"
    suite:
    J'ai vraiment besoin de m'assurer que ce code sera stable, et efficace pour n'importe quel cas de figure.

    Merci d'avance à tous.
    DP

  2. #2
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    Pour ma part, j'utiliserais plutôt la fonctionnalité .protectcontents qui est prévue pour vérifier si ton onglet est protégé ou non.
    Et plutôt qu'une gestion avec des goto, utiliser un resume next.

    Ces points te permettraient de réaliser une fonctionnalité avec une boucle pour avoir un seul code pour tous les mdp possibles.

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  3. #3
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    Si tu peux encore avoir accès à tes classeurs, tu peux inscrire le mot de passe dans un Nom (proc "AjouterNom") que tu définis invisible (on ne pourra pas le voir dans le gestionnaire de Noms) et il te suffira de le récupérer au moment de déprotéger (proc "LireNom"). Chaque classeur pourra avoir son propre mot de passe qu'il soit ancien ou nouveau, le MDP est embarqué avec lui enfin, c'est une piste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    Sub AjouterNom()
     
        Dim N As Name
     
        'défini un Nom invisible dans Gestionnaire des Noms...
        'cette ligne de code peut être exécutée plusieurs fois
        'il n'y aura malgré tout qu'un seul Nom portant ce nom (MotDePasse)
        Set N = Names.Add("MotDePasse", "DonkeyPuncher", False)
     
        'il est tout à fait possible de changer sa valeur
        'Set N = Names.Add("MotDePasse", "AutrerMotdePassePourDonkeyPuncher", False)
     
    End Sub
     
    Sub LireNom()
     
        Dim N As Name
        Dim MDP As String
     
        Set N = Names("MotDePasse")
        MDP = Replace(Replace(N.RefersTo, "=", ""), """", "")
     
        MsgBox MDP
     
        '.Unprotect MDP
     
    End Sub

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    pass=array("","pass1","pass2","pass3")
    For i =1 to 3
    Seets(i).UnProtect pass(i)
    Next

  5. #5
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut, à titre d'info voir ceci

  6. #6
    Membre régulier Avatar de DonkeyPuncher
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2013
    Messages : 56
    Points : 113
    Points
    113
    Par défaut
    Merci à tous pour vos réponses, je vais tester chacune d'entre elles et voir laquelle s'adapte le mieux !

    kiki29, je suis assez stupéfait qu'une telle méthode puisse marcher !
    DP

  7. #7
    Membre expérimenté Avatar de Gado2600
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Mai 2013
    Messages
    903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Office VBA

    Informations forums :
    Inscription : Mai 2013
    Messages : 903
    Points : 1 364
    Points
    1 364
    Par défaut
    Bonjour,

    Je ne connaissais pas non plus cette petite partie de la fonctionnalité de Protect.
    Peux-tu nous dire pourquoi cela réalise cet "effet" de la fonctionnalité ? C'est un peu bizarre pour une fonctionnalité de protection car cela veut dire que n'importe qui, via le VBA, peut modifier le mot de passe et déprotéger ce qui l'était...

    Cordialement,
    Le sabre est une arme. Le kendo est un art de tuer. Quelles que soient les belles paroles pour l'expliquer, telle est sa vérité.

  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut



    Bonjour,

    oui c'est bien connu depuis des lustres, Excel est un gruyère côté sécurité ‼ …



    ______________________________________________________________________________________________________
    Je suis Paris, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lien protégé par un mot de passe
    Par hubald dans le forum Langage
    Réponses: 11
    Dernier message: 05/12/2008, 18h22
  2. Réponses: 2
    Dernier message: 24/11/2008, 13h39
  3. Réponses: 3
    Dernier message: 08/11/2008, 09h23
  4. Réponses: 8
    Dernier message: 12/11/2007, 12h04
  5. Formulaire protégé par un mot de passe
    Par SpyesX dans le forum Access
    Réponses: 10
    Dernier message: 13/03/2006, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo