Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 

jfcjfc

XLDnaute Nouveau
Re : tri aleatoire

Merci, mais le curseur ne se déplace pas !
ex: j'ai 20 valeurs de ("BA,BT"), comment en effacer 10 de façon aléatoire sur cette ligne.
ou alors comment utiliser "clearcontents" aléatoirement, sur une ligne de 20 n° pour en effacer 10.
encore merci pour l'info.
 

Dranreb

XLDnaute Barbatruc
Re : tri aleatoire

comment en effacer 10 de façon aléatoire sur cette ligne.
Comme je dis de le faire en combinant mes poste #3 et #9

Ce qui donne évidemment ça par exemple :
VB:
Sub test()
Dim TAléa() As Long, P As Long, A As Long, J As Long, Plg As Range
ReDim TAléa(1 To 20): For P = 1 To 20: TAléa(P) = P: Next P
For P = 20 To 2 Step -1
   A = Int(Rnd * P) + 1: J = TAléa(A): TAléa(A) = TAléa(P): TAléa(P) = J
   Next P
Set Plg = ActiveSheet.[A1:T1]
For P = 1 To 10
   Plg.Columns(TAléa(P)).Value = Empty
   Next P
End Sub
 
Dernière édition:

jfcjfc

XLDnaute Nouveau
Re : tri aleatoire

Ce qui donne évidemment ça par exemple :
VB:
Sub test()
Dim TAléa() As Long, P As Long, A As Long, J As Long, Plg As Range
ReDim TAléa(1 To 20): For P = 1 To 20: TAléa(P) = P: Next P
For P = 20 To 2 Step -1
   A = Int(Rnd * P) + 1: J = TAléa(A): TAléa(A) = TAléa(P): TAléa(P) = J
   Next P
Set Plg = ActiveSheet.[A1:T1]
For P = 1 To 10
   Plg.Columns(TAléa(P)).Value = Empty
   Next P
End Sub
[/QUOTE]


j'ai besoin encore de votre aide
je voudrai pouvoir utiliser cette macro sur la ligne de mon choix
exemple
dim A,B,C as integer
A = 12163
B = 3
C = 22
''''Set Plg = ActiveSheet.[A1:T1], le changer en valeur numérique.
'du style : Range(Cells(A, B), Cells(A, C)).Select
' la boucle For P doit prendre en compte ce changement aussi.
'Plg.Columns(TAléa(P)).Value = Empty, doit être aussi changer,Il me semble.
'en résumé, pouvoir utiliser la macro à mon gré sur la ligne que j'ai choisie.
Encore une fois d'avance merci pour la réponse et excusez pour le dérangement.
Cordialement
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…