Bonjour à tous,
Je suis à la recherche d'un bout de code me permettant de trier sur 2 niveaux tel que le permet Excel sous l'onglet "données / trier / ajouter un niveau"
Situation : Sur ma colonne A, j'ai des données texte et alphanumérique / Sur ma colonne B, j'ai des occurrences pour chaque donnée.
NB: il peut exister des doublons, ce n'est pas un problème.
Id Occ A61K 17 A61K 19 A61K 330 A61P 20 A61P 3 A61P 250 Arrival 50 Phoenix 500 Phoenix 800 Arrival 70 B29C 8 B29C 13 Arrival 90 B29C 200 A61K 16
Objectif : classer sur la colonne a les données par ordre alphabétique tout en triant sur la colonne B l'occurrence du plus grand au plus petit, pour obtenir ceci :
Id Occ A61K 330 A61K 19 A61K 17 A61K 16 A61P 250 A61P 20 A61P 3 Arrival 90 Arrival 70 Arrival 50 B29C 200 B29C 13 B29C 8
____________________________________________
Jusqu'à présent, j'utilisais ce code, en utilisant une plage comprenant à la fois la colonne A et B, en pensant que le filtre considèrerait les 2 colonnes. En fait, il tri chaque colonne indépendamment, et casse donc tout le tableur puisque chaque donnée en colonne A est "glissée" de sa valeur en colonne B...
_____________________________________________
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Sub Triage() Range("A2:B5000").Sort Key1:=Columns("A:A"), Order1:=xlAscending ' Tri la colonne 1 (A) par ordre alphabétique Range("A2:B5000").Sort Key1:=Columns("B:B"), Order1:=xlDescending ' Tri la colonne 2 (B) du plus grand au plus petit End Sub
Connaissez-vous une solution pour remédier à ce problème ?
Merci par avance pour vos retours,
Bien cordialement,
François.
Partager