Code VBA mots de passe ouverture fichier

Fermé
manueHN Messages postés 35 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 24 avril 2012 - 9 avril 2012 à 21:42
 manueHN - 29 avril 2012 à 21:18
Bonjour,

Je souhaiterais qu'il soit demandé un mot de passe à l'ouverture d'un fichier Excel en particulier.

Sur ce fichier, il y a plusieurs utilisateurs, donc plusieurs mot de passe.

Chaque mot de passe doit renvoyer une feuille donnée, qui est différente en fonction de mot de passe.

Pour le moment, j'ai réussi à écrire un code qui fonctionne plus ou moins.
Un mot de passe est bien demandé à l'ouverture du fichier, s'il est bon, l'utilisateur accède à la feuille souhaitée. Par contre, s'il se trompe de mot de passe, il a quand même accès au fichier tel que l'ancien utilisateur l'a laissé. Comment pourrais-je faire pour bloquer l'utilisateur si le mot de passe correspond à aucun mot de passe possible ?

Sinon, autre problème, pour que le mot de passe soit demandé à l'ouverture du fichier, j'ai utilisé la fonction Auto_Open(), après avoir lu différents forums.

Mais cela a engendré un gros problème sur le réseau de mon entreprise. Au début, ce fichier dès qu'il avait été ouvert une première fois dans la journée, se rouvrait tout seul. Maintenant, sur mon pc seulement, c'est tous les fichiers qui disposent d'une macro qui se ré-ouvrent tout seul !!! Je ne sais plus quoi faire ?

J'ai bien lu sur internet que je devrais utiliser la fonction Worksheet_Open(), mais je n'arrive pas à la faire fonctionner.

Merci pour votre aide.


A voir également:

5 réponses

eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 153
10 avril 2012 à 08:32
Bonjour, pour le auto_open, je ne sais pas par contre, pour ton mot de passe pourrais-tu nous montrer le code ????
0
manueHN Messages postés 35 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 24 avril 2012
10 avril 2012 à 11:53
Bonour,

Oui je suis désolée, hier j'ai oublié de vous mettre un extrait. J'ai saisi ce code dans un module 1 dans VBA :

Private Sub Auto_Open()

Password = InputBox("mot de passe", vbCritical)
'Rend la feuille visible si mot de passe OK
If Password = "JLRLWEL" Then
Sheets("Référentiel_ressources").Visible = True
Sheets("Référentiel_projets").Visible = True
Sheets("ADH").Visible = True
Sheets("API").Visible = True
Sheets("CAN").Visible = True
Sheets("DDE").Visible = True
Sheets("DGI").Visible = True
Sheets("DPE").Visible = True
Sheets("EIG").Visible = True
Sheets("ELE").Visible = True
Sheets("ETH").Visible = True
Sheets("FCL").Visible = True
Sheets("FLE").Visible = True
Sheets("FMA").Visible = True
Sheets("FNO").Visible = True
Sheets("GBO").Visible = True
Sheets("HHE").Visible = True
Sheets("JBO").Visible = True
Sheets("JDE").Visible = True
Sheets("JLR").Visible = True
Sheets("JMH").Visible = True
Sheets("JNO").Visible = True
Sheets("LDA").Visible = True
Sheets("LFR").Visible = True
Sheets("LNE").Visible = True
Sheets("PCR").Visible = True
Sheets("PME").Visible = True
Sheets("PMI").Visible = True
Sheets("PPO").Visible = True
Sheets("PSA").Visible = True
Sheets("SCO").Visible = True
Sheets("SDE").Visible = True
Sheets("SMA").Visible = True
Sheets("SME").Visible = True
Sheets("YMO").Visible = True
Sheets("Bdd_hres_globale").Visible = True
Sheets("Synthèse_hres").Visible = True


ElseIf Password = "ad2ht5" Then
Sheets("ADH").Visible = True

'Bloque l'accès aux autres feuilles
Sheets("Référentiel_ressources").Visible = xlVeryHidden
Sheets("Référentiel_projets").Visible = xlVeryHidden
Sheets("API").Visible = xlVeryHidden
Sheets("CAN").Visible = xlVeryHidden
Sheets("DDE").Visible = xlVeryHidden
Sheets("DGI").Visible = xlVeryHidden
Sheets("DPE").Visible = xlVeryHidden
Sheets("EIG").Visible = xlVeryHidden
Sheets("ELE").Visible = xlVeryHidden
Sheets("ETH").Visible = xlVeryHidden
Sheets("FCL").Visible = xlVeryHidden
Sheets("FLE").Visible = xlVeryHidden
Sheets("FMA").Visible = xlVeryHidden
Sheets("FNO").Visible = xlVeryHidden
Sheets("GBO").Visible = xlVeryHidden
Sheets("HHE").Visible = xlVeryHidden
Sheets("JBO").Visible = xlVeryHidden
Sheets("JDE").Visible = xlVeryHidden
Sheets("JLR").Visible = xlVeryHidden
Sheets("JMH").Visible = xlVeryHidden
Sheets("JNO").Visible = xlVeryHidden
Sheets("LDA").Visible = xlVeryHidden
Sheets("LFR").Visible = xlVeryHidden
Sheets("LNE").Visible = xlVeryHidden
Sheets("PCR").Visible = xlVeryHidden
Sheets("PME").Visible = xlVeryHidden
Sheets("PMI").Visible = xlVeryHidden
Sheets("PPO").Visible = xlVeryHidden
Sheets("PSA").Visible = xlVeryHidden
Sheets("SCO").Visible = xlVeryHidden
Sheets("SDE").Visible = xlVeryHidden
Sheets("SMA").Visible = xlVeryHidden
Sheets("SME").Visible = xlVeryHidden
Sheets("YMO").Visible = xlVeryHidden
Sheets("Bdd_hres_globale").Visible = xlVeryHidden
Sheets("Synthèse_hres").Visible = xlVeryHidden

'Etc... en fonction des différents mot de passe (32)
End If

End Sub

Merci pour votre aide
0
eljojo_e Messages postés 1155 Date d'inscription lundi 10 mai 2010 Statut Membre Dernière intervention 14 octobre 2022 153
10 avril 2012 à 12:48
Moi je te proposerai de faire comme ca :

If Password = "JLRLWEL" Then

sheets( .....

goto a:

end if


If Password = "ad2ht5" Then

sheets( .....

goto a:

end if


Et à la fin du code tu met :


'Quitte Excel
Application.Quit

'Libère la mémoire
Set ApplicationExcel = Nothing
a:


end sub
0
manueHN Messages postés 35 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 24 avril 2012
24 avril 2012 à 21:16
Bonjour,

Désolée de ne répondre que maintenant mais j'ai du m'absenter hors de France pendant 10 jours !

Je viens d'essayer et ton code fonctionne à merveilles ! je te remercie. Au moins un problème de résolu.

Maintenant, il me reste le principal et le plus gênant : le fait que mon fichier ou qu'un autre fichier avec des macros, ouvert précédemment, se ré-ouvre tout seul.

Je pense que ça vient de la fonction Auto_open() que j'ai mis dans mon code VBA du module 1. Mais je n'arrive pas à faire autrement.

En fait, je souhaite qu'un mot de passe soit demandé à l'ouverture de ce fichier et seulement pour ce fichier.

Quelqu'un peut-il m'aider SVP ?

Merci d'avance,

Emmanuelle
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

Si tu veux executer une macro automatiquement à l'ouverture du fichier, tu dois mettre la procédure prédéfinie Workbook_Open() dans le code de ThisWorkBook

Private Sub Workbook_Open()
Mot_De_Passe
...
...
End Sub

;)
0
bonjour,

J'ai déjà essayé mais lorsque je réouvre mon fichier, excel ne me demande plus de mot de passe pour y accéder.

Donc je ne sais plus comment faire ?
0