Bonjour
J'ai une macro de tri par équipes (merci a son auteur Dranreb)
J'aimerais pouvoir lui intégrer "si cela est possible" les valeurs de la colonne D
comme dans l'exemple ci joint
Merci de votre aide
------------
Sub TriParÉquipes()
DéclasserGroupesDe3 [C4:C99]
Dim wsh As Worksheet
End Sub
---------------------------------
Sub DéclasserGroupesDe3(ByVal rng As Range)
Dim TEntrée(), TSortie(), n As Long, LE As Long, LS As Long, dl As Long, C As Long
TEntrée = rng.Value
ReDim TSortie(1 To UBound(TEntrée, 1), 1 To 1)
With New ListeAléat
Randomize
.Init UBound(TEntrée, 1) \ 3
For n = 1 To .Count
LE = 3 * (n - 1): LS = 3 * (.Aléat(n) - 1)
For dl = 1 To 3: TSortie(LS + dl, 1) = TEntrée(LE + dl, 1): Next dl
Next n
End With
rng.Value = TSortie
Dim dlg&: dlg = Cells(Rows.Count, 3).End(3).Row: If dlg < 4 Then Exit Sub
Dim Tbl, plg As Range, lg1&, lg2&: lg2 = 4: Application.ScreenUpdating = 0
Set plg = Range("C4:C" & dlg): Tbl = plg: plg.ClearContents: dlg = dlg - 3
For lg1 = 1 To dlg
If Tbl(lg1, 1) <> "" Then Cells(lg2, 3) = Tbl(lg1, 1): lg2 = lg2 + 1
Next lg1
End Sub
J'ai une macro de tri par équipes (merci a son auteur Dranreb)
J'aimerais pouvoir lui intégrer "si cela est possible" les valeurs de la colonne D
comme dans l'exemple ci joint
Merci de votre aide
------------
Sub TriParÉquipes()
DéclasserGroupesDe3 [C4:C99]
Dim wsh As Worksheet
End Sub
---------------------------------
Sub DéclasserGroupesDe3(ByVal rng As Range)
Dim TEntrée(), TSortie(), n As Long, LE As Long, LS As Long, dl As Long, C As Long
TEntrée = rng.Value
ReDim TSortie(1 To UBound(TEntrée, 1), 1 To 1)
With New ListeAléat
Randomize
.Init UBound(TEntrée, 1) \ 3
For n = 1 To .Count
LE = 3 * (n - 1): LS = 3 * (.Aléat(n) - 1)
For dl = 1 To 3: TSortie(LS + dl, 1) = TEntrée(LE + dl, 1): Next dl
Next n
End With
rng.Value = TSortie
Dim dlg&: dlg = Cells(Rows.Count, 3).End(3).Row: If dlg < 4 Then Exit Sub
Dim Tbl, plg As Range, lg1&, lg2&: lg2 = 4: Application.ScreenUpdating = 0
Set plg = Range("C4:C" & dlg): Tbl = plg: plg.ClearContents: dlg = dlg - 3
For lg1 = 1 To dlg
If Tbl(lg1, 1) <> "" Then Cells(lg2, 3) = Tbl(lg1, 1): lg2 = lg2 + 1
Next lg1
End Sub