Accés aléatoire à un élément d'un tableau [Résolu]

hela_bouks 18 Messages postés vendredi 24 février 2006Date d'inscription 2 janvier 2008 Dernière intervention - 7 mars 2006 à 09:59 - Dernière réponse : cs_Willi 2381 Messages postés jeudi 12 juillet 2001Date d'inscription 13 février 2015 Dernière intervention
- 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.
Afficher la suite 

5 réponses

econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 7 mars 2006 à 10:13
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
cs_Willi 2381 Messages postés jeudi 12 juillet 2001Date d'inscription 13 février 2015 Dernière intervention - 7 mars 2006 à 10:10
0
Utile
Bonjour,
Randomize
MsgBox CInt(Rnd * UBound(NomDeTonTableau)) - 1

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

Manu
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 7 mars 2006 à 10:16
0
Utile
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
cs_Willi 2381 Messages postés jeudi 12 juillet 2001Date d'inscription 13 février 2015 Dernière intervention - 7 mars 2006 à 10:21
0
Utile
Econs > exact pour LBound et un petit exemple, je crois que je devrais rester coucher le matin ^^

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.