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
 

Modeste geedee

XLDnaute Barbatruc
Re : tri aleatoire

Bonsour®
la même avec macro
Capture.jpg
 

Pièces jointes

  • jfcjfc.xlsm
    21.7 KB · Affichages: 41
  • Capture.jpg
    Capture.jpg
    27.6 KB · Affichages: 31

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.:p
 

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:confused:
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
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 361
Messages
2 087 629
Membres
103 613
dernier inscrit
luluinmauritius