ElseIf Range("b2") <= 21 And Range("d2") <> 21 Then
Range("c3") = "Le joueur gagne"
dans ce cas là c'estBonjour Pascal , re Dranreb
Une incohérence??? Sans vouloir vous offenser, vous n'avez jamais jouer au Black Jack.
Admettont que vous ayez 13(idem pour l'ordi), vous allez sûrement vouloir avoir une 3ème carte. Malheureusement, il y a un dix ou une figure qui apparaît, combien de points avez-vous dans les mains???
x = [b2] <= 21 And ([d2] < [b2] And [d2] <> 21)
[C3] = IIf(x, "le joueur gagne", "La banque gagne")
[l22] = [l22] + [l25] + IIf([d2] <> 21, ([l22] / 2), 0) '<- mise de départ ex.: 100. Partage en deux entre la banque et le joueur.
Sub MsgCroupier()
Dim PntJoueur As Range, PntOrdi As Range, Croupier As Range
Dim SommeDep As Range, Mise As Range, BJ As Byte
Set PntJoueur = Range("b2"): Set PntOrdi = Range("d2"): Set Croupier = Range("c3")
Set SommeDep = Range("l22"): Set Mise = Range("l24")
BJ = 21
Select Case PntOrdi
Case Is > BJ
Croupier = "Le joueur gagne"
SommeDep = SommeDep + Mise
Case Is = BJ
Croupier = "BLACK JACK"
SommeDep = (SommeDep - Mise) - (Mise / 2)
Case Is > PntJoueur
Croupier = "La banque gagne"
SommeDep = SommeDep - Mise
Case Is < PntJoueur
Croupier = "Le joueur gagne"
SommeDep = SommeDep + Mise
Case Is = PntJoueur
Croupier = "Égalité"
End Select
End Sub
re
si j’analyse tout tes elseif
sauf erreur de part ça se résume a ça
VB:x = [b2] <= 21 And ([d2] < [b2] And [d2] <> 21) [C3] = IIf(x, "le joueur gagne", "La banque gagne") [l22] = [l22] + [l25] + IIf([d2] <> 21, ([l22] / 2), 0) '<- mise de départ ex.: 100. Partage en deux entre la banque et le joueur.
le principe est simple
tu a des conditions pour le joueur et d'autres pour la banque
ben c'est pas la peine de faire la banque
si c'est pas le joueur c'est la banque
Si c'étaient les valeurs plutôt que les Range qui étaint récupérées en PntOrdi et PntJoueur, il serait peut être aussi possible de les mettre l'un et l'autre à 0 dès qu'ils dépassent 21, avant de tester ensuite simplement les différences ?