Sub test()
For i = 5 To 10
If WorksheetFunction.CountIf(Range("B5", Cells(i, 2)), Cells(i, 2)) = 1 Then texte = texte & Cells(i, 2) & " ligne(" & i & ")" & vbCrLf
Next
MsgBox texte
End Sub
Sub test2()
For i = 5 To 10
If WorksheetFunction.CountIf(Range("B5", Cells(10, 2)), Cells(i, 2)) = 1 Then texte = texte & Cells(i, 2) & " ligne(" & i & ")" & vbCrLf
Next
MsgBox texte
End Sub
re:
Cells(k, 3) = carteOrdi(((nb * Rnd) + 1))
If WorksheetFunction.CountIf(Range("c5", Cells(10, 3)), Cells(k, 3)) >= 1 Then GoTo re
Option Explicit
Private LAt As New ListeAléat, P As Long
Sub Jeu_Ordi()
Randomize
LAt.Init 52
Range("B5:C10").ClearContents
P = 0
Application.OnTime Now + TimeSerial(0, 0, 3), "TirerUneCarte"
End Sub
Sub TirerUneCarte()
Dim Carte As Long
P = P + 1: Carte = LAt.Aléat(P)
Cells(4 + P, 2).Value = Carte
Cells(4 + P, 3) = NomCarte(Carte)
If P < 6 Then Application.OnTime Now + TimeSerial(0, 0, 2), "TirerUneCarte"
End Sub
Function NomCarte(ByVal N As Long) As String
NomCarte = Choose((N - 1) Mod 13 + 1, "as", "deux", "trois", "quatre", "cinq", _
"six", "sept", "huit", "neuf", "dix", "valet", "dame", "roi") & " de " & _
Choose((N - 1) \ 13 + 1, "cœur", "carreau", "pique", "trèfle")
End Function
Sub TirerUneCarte()
Dim Carte As Long, i As Byte
P = P + 1: Carte = LAt.Aléat(P)
Cells(4 + P, 3) = NomCarte(Carte)
Cells(4 + P, 2).Value = Split(Cells(4 + P, 3), " de")(0)
Select Case Cells(4 + P, 2)
Case "as": num = 1
Case "deux": num = 2
Case "trois": num = 3
Case "quatre": num = 4
Case "cinq": num = 5
Case "six": num = 6
Case "sept": num = 7
Case "huit": num = 8
Case "neuf": num = 9
Case Else
num = 10
End Select
Cells(4 + P, 4).Value = num
Range("d2") = Range("d5") + Range("d6") + Range("d7") + Range("d8") + Range("d9") + Range("d10")
If Range("d2") > Range("b2") And Range("d2") < 21 Then Range("c3") = "La banque gagne !": Exit Sub
If Range("d2") > Range("b2") And Range("d2") = 21 Then Range("c3") = "La banque gagne !": Exit Sub
If Range("d2") > Range("b2") And Range("d2") > 21 Then Range("c3") = "Le joueur gagne !": Exit Sub
If Range("d2") = Range("b2") And Range("d2") < 21 Then Range("c3") = "Egalité !": Exit Sub
If Range("b5") = "as" And Range("b6") = "dix" Then Range("d2") = Range("d2") + 10: Range("c2") = "BLACK JACK": Exit Sub
If Range("b5") = "dix" And Range("b6") = "as" Then Range("d2") = Range("d2") + 10: Range("c2") = "BLACK JACK": Exit Sub
If Range("b5") = "as" And Range("b6") = "valet" Then Range("d2") = Range("d2") + 10: Range("c2") = "BLACK JACK": Exit Sub
If Range("b5") = "valet" And Range("b6") = "as" Then Range("d2") = Range("d2") + 10: Range("c2") = "BLACK JACK": Exit Sub
If Range("b5") = "as" And Range("b6") = "dame" Then Range("d2") = Range("d2") + 10: Range("c2") = "BLACK JACK": Exit Sub
If Range("b5") = "dame" And Range("b6") = "as" Then Range("d2") = Range("d2") + 10: Range("c2") = "BLACK JACK": Exit Sub
If Range("b5") = "as" And Range("b6") = "rois" Then Range("d2") = Range("d2") + 10: Range("c2") = "BLACK JACK": Exit Sub
If Range("b5") = "rois" And Range("b6") = "as" Then Range("d2") = Range("d2") + 10: Range("c2") = "BLACK JACK": Exit Sub
If Range("b5") = "as" And Range("d2") <= 11 Then Range("d2") = Range("d2") + 10
If Range("b6") = "as" And Range("d2") <= 11 Then Range("d2") = Range("d2") + 10
If Range("b7") = "as" And Range("d2") <= 11 Then Range("d2") = Range("d2") + 10
If Range("b8") = "as" And Range("d2") <= 11 Then Range("d2") = Range("d2") + 10
If Range("b9") = "as" And Range("d2") <= 11 Then Range("d2") = Range("d2") + 10
If Range("b10") = "as" And Range("d2") <= 11 Then Range("d2") = Range("d2") + 10
If Range("d2") > 20 And Range("d2") <= 24 Then Exit Sub
If P < 7 Then Application.OnTime Now + TimeSerial(0, 0, 1), "TirerUneCarte"
End Sub
num = (Carte - 1) Mod 13 + 1: If num > 10 Then num = 10
If Range("b2") < 21 And Range("b2") > Range("d2") Then
Range("c3") = "Le joueur gagne"
Range("l22") = Range("l22") + Range("l25")
ElseIf Range("d2") > 21 And Range("b2") < 21 Then
Range("c3") = "Le joueur gagne"
Range("l22") = Range("l22") + Range("l25")
ElseIf Range("d2") > 21 And Range("d2") < 21 Then
Range("c3") = "Le joueur gagne"
Range("l22") = Range("l22") + Range("l25")
ElseIf Range("b2") = 21 And Range("d2") <> 21 Then
Range("c3") = "Le joueur gagne"
Range("l22") = Range("l22") + Range("l25") + (Range("l22") / 2) '<- mise de départ ex.: 100. Partage en deux entre la banque et le joueur.
ElseIf Range("d2") = 21 And Range("b2") <> 21 Then
Range("c3") = "La banque gagne"
Range("l22") = Range("l22") - Range("l25")
ElseIf Range("d2") < 21 And Range("d2") > Range("b2") Then
Range("c3") = "La banque gagne"
Range("l22") = Range("l22") - Range("l25")
ElseIf Range("b2") > 21 And Range("d2") < 21 Then
Range("c3") = "La banque gagne"
Range("l22") = Range("l22") - Range("l25")
ElseIf Range("b2") = 21 And Range("d2") = 21 Then
Range("c3") = "Égalité"
ElseIf Range("d2") = Range("b2") Then
Range("c3") = "Égalité"
End If