tri aleatoire

jfcjfc

XLDnaute Nouveau
Bonjour, je voudrai faire un tri aléatoire sur une ligne de 20 valeurs différentes pour en garder que 10.
ex: ("A1,T1") = 1,2,3;4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20.
le tri aléatoire doit m'en garder que 10 sur ces 20.
en macro VBA.
D'avance merci
 

Dranreb

XLDnaute Barbatruc
Re : tri aleatoire

Bonjour
Vous pouvez aussi prendre ces instructions pour initialiser une table de Long en désordre :
VB:
Dim P As Long, A As Long, J As Long
ReDim Joueur(1 To Nombre): For P = 1 To Nombre: Joueur(P) = P: Next P
For P = Nombre To 2 Step -1
   A = Int(Rnd * P) + 1: J = Joueur(A): Joueur(A) = Joueur(P): Joueur(P) = J
   Next P
 

jfcjfc

XLDnaute Nouveau
Re : tri aleatoire

j'ai testé, mais ce n'est pas exactement ce que je veux.
Je me suis mal exprimé.
je reformule ma question:
Sur une ligne ou il y 20 nombres de valeurs différentes, il faudrait faire un effacement de 10 valeurs de façon aléatoire.
je préférerai que ce soit sur une ligne.
EX: sur la ligne("A1,T1")
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
une fois le tri effectué cela pourrait donner ceci, par exemple.
1, , ,4,5,6, , ,9, , 11,12, , ,15,16, , , ,20
les virgules sont là juste pour matérialiser les cellules.
Un n° par case.
D'avance encore une fois merci.
 

Dranreb

XLDnaute Barbatruc
Re : tri aleatoire

Bonsoir.
À partir du moment où vous avez une liste de 20 nombres différents vous pouvez en faire ce que vous voulez, comme en explorez les 10 premiers pour obtenir les rangs de ceux que vous voulez effacer.
 

jfcjfc

XLDnaute Nouveau
Re : tri aleatoire

merci, mais ce n'est pas ça que je veux.
L'effacement aléatoire doit se faire sur la ligne des 20 n° en gardant la ligne tel quelle.
EX: sur la ligne("A1,T1")
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
une fois le tri effectué cela pourrait donner ceci, par exemple.
1, , ,4,5,6, , ,9, , 11,12, , ,15,16, , , ,20
les virgules sont là juste pour matérialiser les cellules.
Un n° par case.
D'avance encore une fois merci.
 

jfcjfc

XLDnaute Nouveau
Re : tri aleatoire

Bonjour, une macro qui efface aleatoirement 10 valeurs sur 20.
EX: sur la ligne("A1,T1")
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20
une fois le tri effectué cela pourrait donner ceci, par exemple.
1, , ,4,5,6, , ,9, , 11,12, , ,15,16, , , ,20
les virgules sont là juste pour matérialiser les cellules.
Un n° par case.
D'avance encore une fois merci.
 

jfcjfc

XLDnaute Nouveau
Re : tri aleatoire

bonjour, c'est encore moi !
Un clearContents aleatoire de 10 n° sur une ligne de 20 n°.
La dimension de la ligne doit rester intacte, il doit apparaitre 10 cases vides une fois le tri effectué.
En VBA.
Encore merci
 

youky(BJ)

XLDnaute Barbatruc
Re : tri aleatoire

Salut le fil,
A tester.
Bruno
Code:
Sub efface()
Set dico = CreateObject("Scripting.dictionary")
While dico.Count < 10
Randomize
x = Int((20 * Rnd) + 1)
dico(x) = x
Wend
a = dico.Items
For k = 0 To 9
Cells(1, a(k)) = ""
Next
End Sub
 

Statistiques des forums

Discussions
312 207
Messages
2 086 234
Membres
103 162
dernier inscrit
fcfg