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

[Résolu]
Signaler
Messages postés
18
Date d'inscription
vendredi 24 février 2006
Statut
Membre
Dernière intervention
2 janvier 2008
-
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
-
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

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 70 internautes nous ont dit merci ce mois-ci

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

Voila
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
Et un p'tit Randomize Timer dans le Form_Load pour ne pas avoir toujours les mêmes permutations !

Manu
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
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
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Econs > exact pour LBound et un petit exemple, je crois que je devrais rester coucher le matin ^^