guenfood
XLDnaute Occasionnel
Bonjour,
J'ai récupéré une macro sur un site que j'ai modifié pour l'appliquer à mon cas
Option Explicit
Sub tirage
Dim ListeOrig(2662), ListeRes(2662) As String
Dim n, k As Integer
Dim Col, Lig As Long
Dim lOk As Boolean
' Récupération des 64 noms
For n = 1 TO 2662
ListeOrig(n) = thisComponent.Sheets(0).getCellByPosition(0,n).string
next n
' Réorganisation aléatoire
For n = 1 TO 2662
Do
lOk = False
k = int(rnd()*2662) + 1
If ListeOrig(k) <> "" Then
ListeRes(n) = ListeOrig(k)
ListeOrig(k) = ""
lOk = True
End if
Loop While (NOT lOk )
Next n
'Affichage par poule
For Col = 0 TO 1
For Lig = 1 To 5
thisComponent.Sheets(0).getCellByPosition(Col+3,Lig).string = ListeRes(Col*2+Lig)
next Lig
next Col
End Sub
A l'origine, à la place de tous les 2662, il y avait 64.
Lorsque j'exécute la macro, soit j'ai le message ci-dessous
"Valeur ou type de données incorrect. Index hors de la plage définie."
Soit je me retrouve avec des noms tirés au sort dans ma première et deuxième colonne qui sont identiques.
Pour résumer, je dois faire un tirage au sort parmi 2662 personnes pour déterminer 5 gagnants dans 2 catégories.
Chaque catégorie correspondant au lot remporté.
Pouvez-vous m'éclairer ?
Merci par avance.
J'ai récupéré une macro sur un site que j'ai modifié pour l'appliquer à mon cas
Option Explicit
Sub tirage
Dim ListeOrig(2662), ListeRes(2662) As String
Dim n, k As Integer
Dim Col, Lig As Long
Dim lOk As Boolean
' Récupération des 64 noms
For n = 1 TO 2662
ListeOrig(n) = thisComponent.Sheets(0).getCellByPosition(0,n).string
next n
' Réorganisation aléatoire
For n = 1 TO 2662
Do
lOk = False
k = int(rnd()*2662) + 1
If ListeOrig(k) <> "" Then
ListeRes(n) = ListeOrig(k)
ListeOrig(k) = ""
lOk = True
End if
Loop While (NOT lOk )
Next n
'Affichage par poule
For Col = 0 TO 1
For Lig = 1 To 5
thisComponent.Sheets(0).getCellByPosition(Col+3,Lig).string = ListeRes(Col*2+Lig)
next Lig
next Col
End Sub
A l'origine, à la place de tous les 2662, il y avait 64.
Lorsque j'exécute la macro, soit j'ai le message ci-dessous
"Valeur ou type de données incorrect. Index hors de la plage définie."
Soit je me retrouve avec des noms tirés au sort dans ma première et deuxième colonne qui sont identiques.
Pour résumer, je dois faire un tirage au sort parmi 2662 personnes pour déterminer 5 gagnants dans 2 catégories.
Chaque catégorie correspondant au lot remporté.
Pouvez-vous m'éclairer ?
Merci par avance.