XL 2019 Tentative mot de passe 2 fois

Bakhti

XLDnaute Nouveau
salut
prière de me donner le code vba pour une tentative de mot de passe a 2 fois . pour la 3 -ème tentative le fichier se ferme automatiquement
merci a vous
 

JBARBE

XLDnaute Barbatruc
Bonjour à tous,
Peut-être comme ceci ( enregistrer le fichier sur votre ordi )
VB:
Sub Ouvrir_feuille_1()
Dim MDP, i As Long, A As Long
A = 1
For i = 1 To 4
i = A
If A <=3 Then
MDP = InputBox("Veuillez indiquer le mot de passe", "SVP")
If MDP = 1234 Then
Sheets(1).Visible = True
Sheets(1).Select
Exit Sub
Else
MsgBox " Mot de passe incorrect"
A = A + 1
End If
ElseIf A > 3 Then
MsgBox " Mot de passe incorrect ! C'est la 3éme tentative le fichier va se fermer"
Call Auto_Close
End If
Next i
End Sub

Sub Auto_Close()
Dim wb As Workbook
For Each wb In Workbooks 'boucle sur tous les classeurs ouverts
wb.Close True 'fermeture du classeur avec sauvegarde
Next
End Sub
 

Pièces jointes

  • Classeur1.xls
    56 KB · Affichages: 9
Dernière édition:

job75

XLDnaute Barbatruc
Bonsoir Bakhti, JBARBE,

2 solutions, avec et sans UserForm.

Sans UserForm, le code dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
Dim mdp$, x$, n As Byte
mdp = "toto" 'mot de passe à adapter
Do
    x = Application.InputBox(IIf(n, "Il vous reste 1 essai :", "Vous avez droit à 2 essais :"), "Mot de passe")
    n = n + 1
Loop While x <> mdp And n < 2
If x <> mdp Then Application.OnTime 1, Me.CodeName & ".Fermer"
End Sub

Sub Fermer()
Me.Saved = True
If Workbooks.Count = 1 Then Application.Quit Else Me.Close
End Sub
Avec UserForm, le code dans ThisWorkbook :
VB:
Private Sub Workbook_Open()
UserForm1.Show
End Sub

Sub Fermer()
Me.Saved = True
If Workbooks.Count = 1 Then Application.Quit Else Me.Close
End Sub
et dans l'UserForm :
VB:
Const mdp$ = "toto" 'mémorise la variable mdp, à adapter

Private Sub CommandButton1_Click()
Static n As Byte 'mémorise la variable
n = n + 1
If TextBox1 = mdp Or n > 1 Then Unload Me Else Label1 = "Il vous reste 1 essai :": TextBox1 = "": TextBox1.SetFocus
End Sub

Private Sub TextBox1_Change()
If TextBox1 = mdp Then Unload Me 'évite de passer par le bouton
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If TextBox1 <> mdp Then Application.OnTime 1, "ThisWorkbook.Fermer"
End Sub
A+
 

Pièces jointes

  • MdP sans USF(1).xlsm
    16.3 KB · Affichages: 10
  • MdP avec USF(1).xlsm
    20.4 KB · Affichages: 12
Dernière édition:

Bakhti

XLDnaute Nouveau
j'arrive pas a appliqué votre code ; voila mon fichier prière de me le reglé svp
nom d'utilisateur : MBWolrd
mot de passe : MB2021

je veux avoir une tentative de mot de passe a 2 fois . pour la 3 -ème tentative le fichier se ferme automatiquement . merci beaucoup
 

Pièces jointes

  • Service Fidelité.xlsm
    445.6 KB · Affichages: 19

JBARBE

XLDnaute Barbatruc
Bonjour à tous, job75, Bakhti
Il y a comme un défaut dans ton fichier :
J'ai pourtant bien mit :
nom d'utilisateur : MBWolrd
mot de passe : MB2021
Excel_code.jpg
 

Bakhti

XLDnaute Nouveau

JBARBE

XLDnaute Barbatruc
Bonjour

Sachant que ces mots de passe sont facilement violables
Re,
En effet pour un initié un mot de passe dans le VBAProject ne servira à rien !
Mais bon, si tu connais bien ces utilisateurs de ce programme ( petites connaissances d'Excel ) tu peux essayer de mettre un mot de passe dans le VBAProject !
Hélas, il y a peut-être dans ceux-ci des cracks du Web !
En bref, tu n'as pas le choix !
Bonne journée !
 

Statistiques des forums

Discussions
312 330
Messages
2 087 349
Membres
103 526
dernier inscrit
HEC