bonsoir,
code commenté
Sub aargh()
Dim a(1 To 12) ' tableau des activités déjà tirées au sort
For i = 1 To 3 '3 groupes
Erase a 'on réinitialise le tableau des activités déja tirées au sort
For j = 1 To 5 ' 5 types d'exercice
For k = 1 To 2 '2 exercices à tirer par type
Do 'on tire au sort une activité
If j < 5 Then 'parmi 3 activités pour les 4 premiers types
q = Application.RandBetween((j - 1) * 3 + 1, j * 3)
Else 'parmi 12 activité pour le dernier type
q = Application.RandBetween(1, 12)
End If
Loop While a(q) <> 0 'on boucle tant qu'on tire une activité déja tirée
a(q) = 1 'activité q a été tirée au sort
Cells(j * 2 + 2 + k, (i - 1) * 2 + 6) = q ' on indique l'activité dans la cellule qui convient
Next k
Next j
Next i
End Sub