comment peut-on trier une plage de données sur cinq colonnes dans excel
exemple: 5colonnes (ou plus)de 5 nombres (ou plus)à trier par ligne sans utiliser le tri automatique d’excel qui ne propose le tri que sur 3 lignes ou colonnes. Existe t’il une fonction ou macro.
4 12 53 6 21 pour avoir 4 6 12 21 53
9 30 2 55 67 en une opération 2 9 30 55 67
6 5 4 9 7 1 1 4 5 6 7 9
12 4 21 43 6 4 6 12 21 43
merci momo pour ta réponse,
je viens de la lire et je vais la mettre en oeuvre demain pour voir si ça fonctionne.
Je te donnerai le résultat et de plus amples informations si c’est utile.
C’est fait je l’ai essayé, mais ça ne résout pas mon problême.
En appliquant la macro, je le fais ligne par ligne ou colonne par colonne, si j’ai 200 lignes je suis obligé de répéter la macro 200 fois. Mon but c’est de ranger toutes les lignes en même temps.
Peut-être que ce n’est pas possible?
Merci encore
For Each Column In Selection
Selection.Sort Key1:=Range("A1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Next
Attention ne prend pas les colonnes entieres mais seulement la portion ou se trouvent tes données
salut pierrejean
j’ai essayé ta solution, ça ne fonctionne que sur la 1ère colonne A.
Je ne’my connais pas trop en visual b mais il me semble que dans la formule:
=Range(“A1”),
empêche le classement des autres colonnes.
toutes mes excuses pour t’avoir donné une solution insuffisament testée
(il est curieux de constater que cela a fonctionné au moins une fois)
voici quelque chose d’un peu plus travaillé
teste et tiens moi au courant
For Each col In Selection.Columns
col.Sort Key1:=Cells(1, col.Column), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Next
edit: suppose que la selection commence à la 1ere ligne sinon modifier
Cells(1,col…) : remplacer 1 par le numero de la ligne de depart
je suppose que tu as compris qu’avant de lancer la macro il te faut selectionner la zone contenant tes données
si tu souhaites trier par lignes plutot que par colonne je pourrais t’indiquer les changements à faire
:hello:
version avec classement ascendant et detection de la 1ere ligne de la selection
For Each c In Selection.Cells
ligne = c.Row
Exit For
Next
For Each col In Selection.Columns
col.Sort Key1:=Cells(ligne, col.Column), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
Next
End Sub
Bonjour pierrejean
Merci pour ta réponse ultra rapide .
Je vais l’essayer et te dirais ensuite plus tard car j’ai un problème de réseau avec les télécom sur adsl, donc je suis branché sur modem 56K comme il y a cent ans.
A plus :??:
Salut à tous
je remercie momo et pierrejean pour leur aide.
La solution de pierrejean fonctionne dans les deux sens.
Impeccable
Merci encore bob :bounce: