Formulaire plusieurs conditons if

Résolu
Eliot7500
Messages postés
18
Date d'inscription
dimanche 22 décembre 2013
Statut
Membre
Dernière intervention
4 janvier 2014
- 30 déc. 2013 à 12:10
jordane45
Messages postés
35770
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
- 30 déc. 2013 à 16:20
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

jordane45
Messages postés
35770
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
30 déc. 2013 à 14:55
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


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

Modifié par Eliot7500 le 30/12/2013 à 16:11
Merci, ça marche très bien. Debug.Print msg cela sert à quoi?
0
jordane45
Messages postés
35770
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
30 déc. 2013 à 16:15
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.
0
jordane45
Messages postés
35770
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
358
30 déc. 2013 à 16:20
ps : si le souci est résolu, merci de cliquer sur le tag RESOLU en haut de la discussion.
0