Supprimer une valeur dans un array avec Randomize

Résolu
GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention   -  
GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

En ces périodes de fetes je fais une interface qui tire au "hasard" les gagnants ainsi que les cadeaux.

Pour traiter mes doublons dans mes tables je voudrais éliminer la valeur tiré au sort et ainsi réinitialisé ma table pour procéder a un nouveau tirage.

' fonction gagnant
'TPar est un array contenant la liste des participants, et TGani un array vide pour enregistrer les gagnants
Function TirageP(TPar As Variant, TGani As Variant)
Dim i%, Inti%
' un peu plus de la moitié des participants ont un cadeau
Inti = Int((UBound(TPar) / 2) + 0.5)
ReDim TGani(Inti)
Randomize
For i = 0 To Inti
 TGani(i) = TPar(Int(UBound(TPar) * Rnd))
'a ce moment sortir la valeur TGani dans ma table TPar
Next
End Function


Je n´ai pas vu de remove ou autre fonction donc pense que je dois passer par une boucle et une autre table temporaire mais la je bloque un peu...

J´utilise tout récement des tables, donc si vous avez des commentaires ludiques je suis prenneur aussi :)

Merci d´avance!
A voir également:

1 réponse

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, moi j'essaierais avec des Collections et pas des tables.
0
GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour yg_be,

collection.... je vais faire des recherches car jms vu et utilisé, merci pour la piste mais i tu as un petit exemple sous la main je te remercie d´avance.
0
GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention   > GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention  
 
Est ce que tu saurais s´il est possible de faire un rnd sur un index d´une collection ?
0
GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention   > GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention  
 
Et ensuite de faire un remove sur l´items. Interessant la collection pas besoin de faire une redimension. gros avantage
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention  
 
je trouve ceci très clair, en Anglais, cependant:
https://excelmacromastery.com/excel-vba-collections/
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > GermPeru Messages postés 172 Date d'inscription   Statut Membre Dernière intervention  
 
rnd sur index: je suggère, au lieu de:
Int(UBound(TPar) * Rnd)

de faire:
Int(1+CPar.Count * Rnd)
0