1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Sub TirageAuSortUnique()
Dim listePlaces As New Collection
Dim x, nbALea, nbPersonnes As Integer
Randomize
nbPersonnes = ActiveSheet.Range("Personnes").Rows.Count
' remplissage des numéros de places disponibles
For x = 1 To nbPersonnes
listePlaces.Add (x)
Next
' tirage aléatoire
For x = 1 To nbPersonnes
nbALea = Int(listePlaces.Count * Rnd) + 1
Debug.Print listePlaces.Item(nbALea)
ActiveSheet.Range("Personnes").Cells(1, 1).Offset(x - 1, 2).Value = listePlaces.Item(nbALea)
listePlaces.Remove (nbALea)
Next
End Sub |
Partager