bonjour,
je n'ai pas trop compris la question... mais je t'ai déjà donné tous les outils dans ton précédent fil. Tu as la-dedans 3 macros génériques pour quasiment tous les tirages aléatoires que tu veux...
Si l'on prend la dernière par exemple la macro "tirage" :
YAKA modifier le range d'origine pour aller à la pêche de tes participants là ou ils sont.
j'ai supposé qu'ils étaient là :
Set Plage = Range("J1:J32,L1:L32,N1:N32")
Bon on a maintenant une collection prête à être mélangée :
Sub tirage()
Dim melange As New Collection
Dim a%, i%, j%, k%, x%, y%, o, v, Plage As Range
'Définition de la plage
Set Plage = Range("J1:J32,L1:L32,N1:N32")
'Stockage dans une collection
For Each o In Plage
melange.Add o.Value
Next
k = melange.Count
Do While k > 0
j = j + 1
If k > 0 Then 'tirage...
i = Int((k * Rnd) + 1)
v = melange(i)
et affichée colonne O (15) par exemple :
'Affichage
Cells(j, 15) = v
jj = 0
melange.Remove i
k = k - 1
End If
Loop
End Sub
La sortie colonne O ne te convient pas ? Soit tu utilises du code générique soit tu le joues à la barbare... et tu insères quelques lignes pour modifier la sortie en dur (ici colonnes Q, S, U, (17,19,21) mais tu peux bien y mettre ou tu veux :
'Disposition de la sortie
Select Case j
Case Is < 33: x = 17
Case Is < 65: x = 19
Case Else: x = 21
End Select
a = IIf(j Mod 32 > 0, j Mod 32, 32)
jj = jj + a
La macro finale :
Sub tirage2()
Dim melange As New Collection
Dim a%, i%, j%, jj%, k%, x%, y%, o, v, Plage As Range
'Définition de la plage
Set Plage = Range("J1:J32,L1:L32,N1:N32")
'Stockage dans une collection
For Each o In Plage
melange.Add o.Value
Next
k = melange.Count
Do While k > 0
j = j + 1
If k > 0 Then 'tirage...
i = Int((k * Rnd) + 1)
v = melange(i)
'Disposition de la sortie
Select Case j
Case Is < 33: x = 17
Case Is < 65: x = 19
Case Else: x = 21
End Select
a = IIf(j Mod 32 > 0, j Mod 32, 32)
jj = jj + a
'Affichage
Cells(jj, x) = v
jj = 0
melange.Remove i
k = k - 1
End If
Loop
End Sub
YA juste la ligne d'ffichage qui a changé pour s'adapter aux nouvelles variables... Ok?
A+