Mot de passe

Résolu
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022 - 14 janv. 2009 à 14:30
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 - 14 janv. 2009 à 19:58
Bonjour,

Lorsque j'ouvre un classeur excel je fais afficher une boite de dialogue qui me demande un mot de passe.
J'aimerais qu'au bout de trois tentatives le classeur ce ferme, sinon si le mot de passe est correct alors j'atteint mon classeur.
Voici ce que j'ai commencé à faire et qui ne fonctionne pas je sais pourquoi mais je n'ai pas de solutions

Merci d'avance pour votre aide

8 réponses

lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
14 janv. 2009 à 14:56
Re,

tu déclare en public la variable i
Entre "option explicit" et ta première déclaration
et pour répondre avant le lancement MotPasse.Show tu place i=0
voilà....

S.L.B.
<hr />
3
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022
14 janv. 2009 à 14:33
Private Sub CommandButtonValid_Click()


nbessais = 0
Retour:


 


If MotPasse.TextBoxMot = "tgb147" Then
       
        MsgBox (" Salut Patrick! Bienvenue dans SUIVI DES CONGES" + Chr(13) + Chr(13) + "Bonne saisie!")
        Affiche_menu_SuiviConges


Else
        MsgBox ("Mot de passe incorrect - Tentative:  " & nbessais)
        nbessais = nbessais + 1
        MotPasse.Show
End If




        If nbessais = 3 Then
        MsgBox ("Mot de Passe Incorrect - Tentative:  " & nbessais)
        Workbooks("Congés Agence.xls").Close SaveChanges:=False
        End If
       
GoTo Retour
    
End Sub

Cette fonction est appelée lorsque je clique sur le bouton valider de ma boite de dialogue (MotPasse)
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
14 janv. 2009 à 14:36
Bonjour,
Merci de coller ton code.. :)

sinon

dim int as integer
if txt_login.text = "toto" and txt_mdp.text="Dieu" then
   'Ouverture classeur
else
   if int > 3 then
      msgbox "Pas de bol!!! 3 essais... Ciao Ciao","Mot de passe", vbInformation
   else
      msgbox "Erreur dans la saisie! Same player shoot again","Mot de passe", vbCritical
      int = int+1
   end if
end if

Bien sur il faut initialiser i = 0 à l'ouverture de ton userform et pas dans l'évenement click de la validation de la saisie...

Bon courage et bon coding
end if

S.L.B.
<hr />
0
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022
14 janv. 2009 à 14:48
Comment initialiser i à l'ouverture?
Je fais ca:

Private Sub Workbook_Open()
 
  MotPasse.TextBoxMot = ""
  MotPasse.Show
 
 
End Sub

Dois -je y rajouter Dim int as integer et int = 0?
0

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

Posez votre question
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022
14 janv. 2009 à 15:05
Merci infiniement je vais épater mes collègues de bureau!
0
Lameche15 Messages postés 156 Date d'inscription mardi 9 septembre 2008 Statut Membre Dernière intervention 15 septembre 2022
14 janv. 2009 à 15:49
Désolé, mais je viens de m'apercevoir que lorsque j'ouvre mon classeur, la boite de dialogue s'affiche mais si je clique sur la croix mon mot de passe ne sert à rien et j'ai quand meme accès au classeur.
Que faire?
0
lillith212 Messages postés 1229 Date d'inscription vendredi 16 novembre 2007 Statut Membre Dernière intervention 16 juin 2009
14 janv. 2009 à 16:56
Re,


Je suis pas super fortiche en vba mais je sais qu'en vb6 tu peux modifier les propriétées de ta fenêtre. Regarde si tu peux pas supprimer la croix dans ton userform...
Voilà... En espérant que cela puisse t'aider..





S.L.B.
<hr />
0
jmf0 Messages postés 1566 Date d'inscription mardi 26 décembre 2000 Statut Membre Dernière intervention 5 avril 2013 8
14 janv. 2009 à 19:58
Bonjour,

1) tu ne développes certainement pas en Thèmes / VB.NET et VB 2005
Prends s'il te plait dorénavant au moins le soin de choisir le bon thème (VBA, en ce qui te concerne)
2) un userForm répond à l'évènement QueryUnload
Cet évènement est parfaitement défini dans ton aide en ligne, ainsi que les arguments qu'il utilise
Bûche celà et utilise-le en y mettant une expression conditionnelle (si mot de passe bon alors ... sinon ...)
Il nous sera agréable de corriger (si besoin en était) ton code dans ce sens.
0
Rejoignez-nous