OVH Cloud OVH Cloud

Tri un peu compliqué

2 réponses
Avatar
Albert
Bonjour =E0 tous,

voila mon probleme : j'ai un tableau excel avec plusieurs=20
colonnes(4) et lignes(2000) qui regroupe des valeurs=20
num=E9riques.
Ce tableau se pr=E9sente sous la forme suivante :
25 36 95 12 =20
14 10 54 36 =20
29 54 78 31 =20
... =20

mon probleme et je veux trier toutes ces lignes=20
INDEPENDEMMENT par ordre croissant de la gauche vers la=20
droite d'une facon automatique et je veux que cela donne=20
le resultat suivant :

25 36 95 12 tri croissant =3D> 12 25 36 95
14 10 54 36 tri croissant =3D> 10 14 36 54
29 54 78 31 tri croissant =3D> 29 31 54 78=20

- alors j'ai essay=E9 avec le tri de gauche =E0 droite cela=20
fonctionne tr=E8s bien mais c'est uniquement pour une ligne=20
car quand tu s=E9lectionnes plusieur lignes le r=E9sultat est=20
mauvais (et je veux pas faire toutes les lignes une par=20
une)

- j'ai essay=E9 aussi avec des macros et du vba, mais je=20
suis pas fort dans ce domaine et ca marche pas

qq'1 peut me dire comment faire ce tri avec une macro ou=20
un code vba adapt=E9 ?

Merci =E0 tous

2 réponses

Avatar
michdenis
Bonjour Albert,

Copie ces 2 procédures dans un module standard,

Dans la procédure Tri, définis la feuille et la plage de cellules désirées et tu exécutes cette macro.

'------------------------------
Sub LeTri()

TrierGaucheVersDroite Range("Feuil1!A1:D3")

End Sub
'------------------------------

Sub TrierGaucheVersDroite(Rg As Range)
Dim A as Long
For Each c In Rg.Rows
A = A + 1
With c
.Sort Key1:=Rg(A, 1), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlLeftToRight, _
DataOption1:=xlSortNormal
End With
Next
End Sub
'------------------------------


Salutations!




"Albert" a écrit dans le message de news:d00701c43996$5c722a80$
Bonjour à tous,

voila mon probleme : j'ai un tableau excel avec plusieurs
colonnes(4) et lignes(2000) qui regroupe des valeurs
numériques.
Ce tableau se présente sous la forme suivante :
25 36 95 12
14 10 54 36
29 54 78 31
...

mon probleme et je veux trier toutes ces lignes
INDEPENDEMMENT par ordre croissant de la gauche vers la
droite d'une facon automatique et je veux que cela donne
le resultat suivant :

25 36 95 12 tri croissant => 12 25 36 95
14 10 54 36 tri croissant => 10 14 36 54
29 54 78 31 tri croissant => 29 31 54 78

- alors j'ai essayé avec le tri de gauche à droite cela
fonctionne très bien mais c'est uniquement pour une ligne
car quand tu sélectionnes plusieur lignes le résultat est
mauvais (et je veux pas faire toutes les lignes une par
une)

- j'ai essayé aussi avec des macros et du vba, mais je
suis pas fort dans ce domaine et ca marche pas

qq'1 peut me dire comment faire ce tri avec une macro ou
un code vba adapté ?

Merci à tous
Avatar
Albert
Ah c'est super et je te remercie car cela fonctionne super
bien.
Je comprends pas le code du tout mais l'eesentiel c'est
que cela marche

Je te remercie encore du fond du coeur

A+
Albert

-----Message d'origine-----
Bonjour Albert,

Copie ces 2 procédures dans un module standard,

Dans la procédure Tri, définis la feuille et la plage de
cellules désirées et tu exécutes cette macro.


'------------------------------
Sub LeTri()

TrierGaucheVersDroite Range("Feuil1!A1:D3")

End Sub
'------------------------------

Sub TrierGaucheVersDroite(Rg As Range)
Dim A as Long
For Each c In Rg.Rows
A = A + 1
With c
.Sort Key1:=Rg(A, 1), Order1:=xlAscending,
Header:=xlGuess, _

OrderCustom:=1, MatchCase:úlse,
Orientation:=xlLeftToRight, _

DataOption1:=xlSortNormal
End With
Next
End Sub
'------------------------------


Salutations!




"Albert" a écrit
dans le message de news:d00701c43996$5c722a80

$
Bonjour à tous,

voila mon probleme : j'ai un tableau excel avec plusieurs
colonnes(4) et lignes(2000) qui regroupe des valeurs
numériques.
Ce tableau se présente sous la forme suivante :
25 36 95 12
14 10 54 36
29 54 78 31
....

mon probleme et je veux trier toutes ces lignes
INDEPENDEMMENT par ordre croissant de la gauche vers la
droite d'une facon automatique et je veux que cela donne
le resultat suivant :

25 36 95 12 tri croissant => 12 25 36 95
14 10 54 36 tri croissant => 10 14 36 54
29 54 78 31 tri croissant => 29 31 54 78

- alors j'ai essayé avec le tri de gauche à droite cela
fonctionne très bien mais c'est uniquement pour une ligne
car quand tu sélectionnes plusieur lignes le résultat est
mauvais (et je veux pas faire toutes les lignes une par
une)

- j'ai essayé aussi avec des macros et du vba, mais je
suis pas fort dans ce domaine et ca marche pas

qq'1 peut me dire comment faire ce tri avec une macro ou
un code vba adapté ?

Merci à tous


.