Re : Tirage au sort aléatoire pour la pétanque
Bonjour à tous, bonjour JOAN66, bonjour Dranreb,
Excusez-moi de m'introduire dans ce post, mais je comprends les difficultés de JOAN66 avec les macros !
J'ai donc apporté les modifications demandées par Dranreb et avec 154 joueurs !
Sub Tirage22()
Dim JMax&, M As Long, L As Long, TAff(), C&
Rem. ——— Initialisations
JMax = Feuil1.[B170].End(xlUp).Row - 5
If JMax Mod 2 = 1 Then
MsgBox "Tirage non applicable pour un nombre impair de participants.", _
vbCritical, "Tirage22": Exit Sub: End If
MMax = IIf(JMax <= 8, 3, 4)
Rem. ——— Initialisations
'JMax = FT22.[JMax].Value
'MMax = FT22.[MMax].Value
LMax = (JMax + 2) \ 4
ReDim DéjàRenc(0 To XTria(JMax, JMax - 1)), _
DéjàPart(0 To XTria(JMax, JMax - 1)), _
DéjàTêtÀTête(1 To JMax)
ReDim JoueursManche(1 To MMax)
Randomize
For M = 1 To MMax: Set JoueursManche(M) = New ListeAléat
JoueursManche(M).Init JMax: Next M
ReDim Tirage(1 To MMax, 1 To LMax, 1 To 4)
Rem. ——— Tirage
If Not RencTrouvée(1, 1) Then MsgBox "Pas de solution trouvée.": Exit Sub
Rem. ——— Mise en forme et affichage du résultat
Dim PlgRés As Range: Set PlgRés = Feuil1.[N6:AC159]
ReDim TAff(1 To PlgRés.Rows.Count, 1 To PlgRés.Columns.Count)
For L = 1 To LMax: For M = 1 To MMax: For C = 1 To 4
If Tirage(M, L, C) <> 0 Then TAff(L, 4 * (M - 1) + C) = Tirage(M, L, C)
Next C, M, L
PlgRés.Value = TAff
End Sub
Bonne journée !