Option Explicit
Private Sub CBnTirage_Click()
Dim MMax As Long, LMax As Long, JMax As Long, TNomsJ(), L As Long, M As Long, C As Long, J As Long, LR As Long, CR As Long
Rem. ——— Chargement du tableau des noms des participants.
TNomsJ = WshNoms.[A1].Resize(WshNoms.[A5000].End(xlUp).Row).Value
JMax = UBound(TNomsJ, 1): MMax = 4
Rem. ——— Exécute le tirage en indiquant s'il a réussi et si le tableau Tirage est donc garni.
If Tirage2vs2OK(NbJrs:=JMax, Manches:=MMax, TousJouent:=True) Then
Rem. ——— Versement des noms vers un tableau dynamique d'après les n° de joueurs contenus dans Tirage.
MMax = UBound(Tirage, 1) ' Nombre de tours
LMax = UBound(Tirage, 2) ' Nombre de lignes de rencontres.
ReDim TRésult(1 To 2 + LMax, 1 To MMax * 4)
For M = 1 To MMax
TRésult(1, (M - 1) * 4 + 1) = "Manche " & M
TRésult(2, (M - 1) * 4 + 1) = "Équipe 1"
TRésult(2, (M - 1) * 4 + 3) = "Équipe 2"
Next M
For L = 1 To LMax: CR = 0: LR = L + 2
For M = 1 To MMax: For C = 1 To 4: CR = CR + 1
J = Tirage(M, L, C): If J <> 0 Then TRésult(LR, CR) = TNomsJ(J, 1)
Next C, M, L
Rem. ——— Déchargement du tableau TRésult vers la plage souhaitée.
Me.[E4].Resize(UBound(TRésult, 1), UBound(TRésult, 2)).Value = TRésult
End If
Me.[A1].Select
End Sub