Accés aléatoire à un élément d'un tableau

Résolu
hela_bouks Messages postés 18 Date d'inscription vendredi 24 février 2006 Statut Membre Dernière intervention 2 janvier 2008 - 7 mars 2006 à 09:59
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 - 7 mars 2006 à 10:21
Bonjour,
Je cherche une instruction me permettant d'accéder aléatoirement à un élément d'un tableau unidimensionnel.
Mon but est de de permuter deux éléments aléatoires d'un tableau.
J'espère que ma question est claire.
Merci d'avance pour la réponse.

5 réponses

econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
7 mars 2006 à 10:13
Salut,

La procedure permutationAleatoire ci-dessous fait çà. La procédure test te servira juste à tester que tout va bien.





Sub test()

Dim tt(3 To 8) As Long

Dim sTemp As String



For l = 3 To 8

tt(l) = l

Next l



permutationAleatoire tt



sTemp = ""

For l = 3 To 8

sTemp = sTemp & tt(l) & " "

Next l

MsgBox sTemp

End Sub













Sub permutationAleatoire(t() As Long)

Dim indice1 As Long

Dim indice2 As Long

Dim nbElements As Long

Dim k As Long



nbElements = UBound(t) - LBound(t) + 1



indice1 = Int(Rnd * nbElements)

indice2 = Int(Rnd * nbElements)



k = t(LBound(t) + indice1)

t(LBound(t) + indice1) = t(LBound(t) + indice2)

t(LBound(t) + indice2) = k



End Sub






Manu
3
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
7 mars 2006 à 10:10
Bonjour,
Randomize
MsgBox CInt(Rnd * UBound(NomDeTonTableau)) - 1

Voila
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
7 mars 2006 à 10:14
Et un p'tit Randomize Timer dans le Form_Load pour ne pas avoir toujours les mêmes permutations !

Manu
0
econs Messages postés 4030 Date d'inscription mardi 13 mai 2003 Statut Membre Dernière intervention 23 décembre 2008 24
7 mars 2006 à 10:16
Willi > Ton exemple ne fonctionne que si LBound(tonTableau)=0

(ce qui est souvent le cas, je te le concède ..., mais un exemple plus générique ne fait pas de mal)


Manu
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Willi Messages postés 2375 Date d'inscription jeudi 12 juillet 2001 Statut Modérateur Dernière intervention 15 décembre 2018 22
7 mars 2006 à 10:21
Econs > exact pour LBound et un petit exemple, je crois que je devrais rester coucher le matin ^^
0
Rejoignez-nous