Mot de passe

Résolu
Signaler
Messages postés
154
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2021
-
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
-
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

Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
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 />
Messages postés
154
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2021

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)
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
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 />
Messages postés
154
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2021

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?
Messages postés
154
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2021

Merci infiniement je vais épater mes collègues de bureau!
Messages postés
154
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
16 septembre 2021

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?
Messages postés
1229
Date d'inscription
vendredi 16 novembre 2007
Statut
Membre
Dernière intervention
16 juin 2009
1
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 />
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
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.