Formulaire plusieurs conditons if [Résolu]

Signaler
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
4 janvier 2014
-
Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
-
Bonjour,
J'ai créer un formulaire avec des cartes qui s'affiche en fonction d'un nombre aléatoire. J'indique le total des cartes du joueur et du dealer dans deux Textbox. Je souhaite effectuer des contrôles sur ces Textbox afin de savoir qui a gagné. Pour cela j'ai créer un bouton de commande qui effectue les différents contrôles. Cependant cela ne fonctionne pas. J'ai mis différentes conditions ( les 2 dernières ne fonctionnent pas, en effet je n'ai pas de msg box lorsque la condition devrait être bonne).


If TextBox3.Value = 21 Then
MsgBox "Blackjack"
If TextBox3.Value = TextBox4.Value Then
MsgBox "match nul"
If TextBox4.Value > 21 Then
MsgBox "Vous avez gagné"
If 17 <= TextBox4.Value And TextBox4.Value <= 21 And TextBox4.Value < TextBox3.Value Then
MsgBox "Vous avez gagné"
If 17 <= TextBox4.Value And TextBox4.Value <= 21 And TextBox4.Value > TextBox3.Value Then
MsgBox "Vous avez perdu"
end if
end if
end if
end if
end if

2 réponses

Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
338
Bonjour,

En général on teste si une variable est <= à un nombre et non pas l'inverse....
donc.. ton 17<= TextBox3.value.... ne me plait pas vraiment et est très certainement la cause de ton souci..

Par contre, je t'invite à tester le code suivant (qui utilise un SELECT CASE plutot que des IF en pagaille...)

Sub blackJack()
Dim msg As String
Dim Win As String
Dim Loose As String
Dim blackJ As String
    Win = "Vous avez gagné !"
    blackJ = " BLACKJACK !!!"
    Loose = " Vous avez PERDU !"
    matchNul = "Mach nul"
    
joueur1 = TextBox4.Value
dealer = TextBox3.Value

If joueur1 > 21 Then
     msg = Loose
Else

    Select Case True
        Case joueur1 = 21
         msg = (Win & blackJ)
        Case joueur1 > dealer
         msg = Win
        Case joueur1 = dealer
         msg = matchNul
        Case joueur1 < dealer And dealer < 21
         msg = Loose
        Case Else
         If dealer > 21 Then
          msg = Win
        End If
    End Select
    

Debug.Print msg
End If


End Sub


Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
4 janvier 2014

Merci, ça marche très bien. Debug.Print msg cela sert à quoi?
Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
338
Via l'aide de VBA (touche F1 sur le mot DEBUG) tu as la réponse;...
L'objet Debug envoie les données de sortie dans la fenêtre Exécution
*La fenêtre d'execution.. tu peux la faire afficher via le menu AFFICHAGE dans l'editeur de macro.

a la place, si tu veux un Popup , tu peux le remplacer par un MSGBOX.
Messages postés
30284
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 novembre 2020
338
ps : si le souci est résolu, merci de cliquer sur le tag RESOLU en haut de la discussion.