MsgBox à 3 Essais

Bonjour Le Forum !

Me voilà aujourd'hui à chercher comment continuer mon code:

Private Sub CommandButton1_Click()
If TextBox1.Value = "boncode" Then
    If MsgBox("Parfait", vbOK + vbExclamation, "MDP") = vbOK Then
    Unload Me
    Sheets(Feuil1.Name).Select
    End If
Else
    'Premier essai
    If MsgBox("Il ne vous reste que 2 Essais", 5 + vbCritical) Then
    TextBox1.Value = ""
    End If
    'Deuxième essai
     If MsgBox("Il ne vous reste que 1 Essais", 5 + vbCritical) Then
    TextBox1.Value = ""
    End If
    'Dernier essai
    If MsgBox("Perdu", 5 + vbCritical) Then
    Unload Me
    Sheets(Feuil3.Name).Select
    End If
End If
End Sub

Vous comprenez que là on a en réalité avec mon code que 1 essai Ils s’enchaînent direct

Comment faire ?

Bonjour Sebyg

Voici pour toi un code qui devrait faire l'affaire:

Private Sub CommandButton1_Click()
Dim nbChances As Integer
Static nbEssais As Integer 'variable statique qui garde sa valeur après la fin de la procédure

nbChances = 3
nbEssais = nbEssais + 1

If TextBox1.Value = "boncode" Then
    MsgBox "Parfait", vbOK + vbExclamation, "MDP"
    Unload Me
    Feuil1.Select
ElseIf nbEssais < nbChances Then
    MsgBox "Il ne vous reste que " & nbChances - nbEssais & " Essais", vbIgnore + vbCritical
    TextBox1.Value = ""
ElseIf nbEssais = nbChances Then
    MsgBox "Perdu", vbOK + vbCritical
    Unload Me
    Feuil3.Select
End If
End Sub

Pour MsgBox, si tu mets des parenthèses avec des vb quelque chose, ça attendra une valeur en retour, si tu enlèves les parenthèses, VBA ne va pas attendre de valeur, tu n'auras pas à mettre de If à tout va

Je me disais bien que c'était vraiment lourd sinon..

Je comprend le code en plus, j'apprend merci beaucoup !

De rien

Content que tu apprennes grâce au code, et que tu le comprennes

Merci d'avoir passé le sujet en résolu

Rechercher des sujets similaires à "msgbox essais"