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 :

Demande du mot de passe VBA à la fermeture d'Excel


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Demande du mot de passe VBA à la fermeture d'Excel
    J'ai un classeur avec un projet VBA protégé par mot de passe pour éviter la modification du code par l'utilisateur. A la fermeture d'Excel, il me demande de saisir ce mot de passe. Si j'annule cette boite de dialogue, elle s'affiche 8 fois consécutives. Help. Merci

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    dificile de cerner ton probleme sans savoir sous quelle forme tu as mis ton mot de passe, mais a priori, ça ressemble plus a une erreur de code. il n'y a pas de raison de demander le mot de passe en sortie. generalement quand une sequence revient un certain nombre de fois c'est lié a l'utilisation d'une fonction. ta macro de sortie doit enregistrer le fichier, et a ce titre repasser par la fonction qui demande le mot de passe. il faut que tu detecte la ligne qui la lance et il suffit peut etre de la deplacer. envoie ton code on en saura plus

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Mot de passe VBA
    J'ai mis un mot de passe dans VBE par Outils, Propriétés de VBAProject, Protection, Verouiller le projet pour l'affichage
    J'ai aussi une macro auto_close qui me propose d'enregistrer le classeur ou non.
    Mais l'erreur se produit maintenant dans les deux cas

    J'avais inséré dans mon code, il y a quelques jours, une commande ShellExecute qui me permettait de démarrer le navigateur par défaut avec un fichier html pour un tutoriel de mon classeur. J'avais inséré une déclaration de fonction ShellExecute dans les déclarations générales. Je l'ai supprimé maintenant et je soupçonne cette manip comme responsable.
    Est-ce possible ?
    Merci de votre aide
    Code en pièce jointe
    Fichiers attachés Fichiers attachés

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    je suppose parce que je ne connais pas que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Attribute Auto_Close.VB_ProcData.VB_Invoke_Func = " \n14"
    est la fonction qui demande a déproteger
    il n'est donc pas dificile de deviner que

    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
    Sub Auto_Close()
    Attribute Auto_Close.VB_ProcData.VB_Invoke_Func = " \n14"   1
    'Affiche la barre de formule
    Application.DisplayFormulaBar = True   2
    ActiveWindow.DisplayHeadings = True    3
    tuer_barre
    Unload Impression  7
    Unload FichElève   8
    'ferme le classeur
    Byebye.Show
    End Sub
    Sub tuer_barre()
    Attribute tuer_barre.VB_ProcData.VB_Invoke_Func = "T\n14"  4
        On Error Resume Next
        CommandBars("Effectifs").Protection = msoBarCustomize  5
        CommandBars("Effectifs").Delete                        6
    End Sub
    les chiffres rouges correspondent a tes 8 demandes de déprotection. pour éviter ça, tu peux deproteger et enregistrer puis reproteger. de cette façon, le classeur se ferme sans rien demander a l'utilisateur, mais enregistre systematiquement. si tu veux qu'il est le choix d'enregistrer les données, il faut au moins que la manip soit automatique pour tout ce qui concerne la remise en état initial d'excel. en entrant le mot de pase dans le code vba, tu laisse le chois a l'utilisateur sans qu'il ait ni le besoin ni la possibilité de connaitre le mot de passe. mais je ne sais pas si on peut l'integrer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.Protect Structure:=True, Windows:=True
        ActiveWorkbook.Unprotect
    reflexion faite, on peut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveWorkbook.Protect ("abracadabra")
        ActiveWorkbook.Unprotect ("abracadabra")
    voila voila, avec ça tu devrais t'en sortir

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Demande du mot de passe VBA à la fermeture d'Excel (suite)
    Je pense m'être mal fait comprendre : ce n'est pas le classeur qui est protégé par mot de passe mais le VBAProject.

    Ce n'est pas Attribute Auto_close.VB_ProcData.VB_Invoke_Func = "\n14" qui est responsable du bug car cette ligne correspond à la touche de raccourci attribuée à cette macro.

    Pourquoi lorsque je ferme le classeur, on me demande de déprotéger le code VBE ?

    Je reste sans réponse

    Merci de votre aide

    A bientôt

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    effectivement, si c'est ça, la vrai question c'est pourquoi. mais la je ne peux pas t'aider, ce code ne fonctionne pas chez moi, il ne reconnait pas le mot atribute. mais tu devrais vérifier si la protection est bien uniquement sur le code. a plus

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Demande du mot de passe VBA à la fermeture d'Excel (EUREKA)
    Euréka ! J'ai trouvé !
    J'avais tout simplement décoché la case d'option dans Outils/Options/Sécurité /Sécurité des macros/Editeurs approuvés/Faire confiance au Projet Visual Basic

    Merci quand même pour les réflexions sur le sujet

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

Discussions similaires

  1. [XL-2010] Demande pass VBA après fermeture
    Par BenDefi dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 06/12/2012, 10h41
  2. [XL-2007] Application.quit demande le mot de passe du projet VBA
    Par hergios dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 02/08/2012, 12h39
  3. Demander un mot de passe pour modifier une cellule excel
    Par statista dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/09/2011, 09h25
  4. Re-demander un mots de passe en VBA
    Par Jpeg69 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/07/2007, 15h25
  5. Réponses: 3
    Dernier message: 26/01/2005, 07h08

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