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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 - 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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 345
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 345
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 38241 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 septembre 2024 345
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
Rejoignez-nous