Tri alpha et décroissant

  • Initiateur de la discussion Initiateur de la discussion gimx
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

G

gimx

Guest
Hello,

Je viens vers vous car je n'arrive pas à faire ce que je veux malgré quelques solutions trouvées sur ce forum 🙁

J'ai 2 colonnes. La premiére il y a des références numériques. La deuxiéme des noms qui peuvent avoir plusieurs occurences. Ce que je voudrais, c'est que sur la même feuille ou une autre feuille, les noms se classent par ordre alphabétique et que, lorsqu'il y a plusieurs fois le même nom, les références se classent par ordre décroissant aussi.

Par exemple si j'ai Dupond avec plusieurs références :
1 - Dupond
5 - Dupond
2 - Dupond
3 - Dupond
7 - Dupond
Je voudrais que ça me donne ça :
7 - Dupond
5 - Dupond
3 - Dupond
2 - Dupond
1 - Dupond

Le but, c'est que cela se fasse automatiquement car je suis amené à modifier la liste, sinon j'aurais fait un tri des données tout bête 🙂

Merci 🙂
 

Pièces jointes

Re : Tri alpha et décroissant

Salut,

Je me suis peut etre un peu compliqué la vie, mais voila deux codes qui fonctionnent.
Le premier est a utilisé si tu veux faire ton classement toujours au meme endroit : par exemple, dans l'exemple du code ci dessous qui est adapté a ton fichier, données de A2 à Bx
Code:
Range("A2:B" & Range("B65536").End(xlUp).Row).Select
Selection.Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("A2") _
    , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
    False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal

Le second permet de classer tes données quelques soit la colonne ou la ligne de départ, il te suffit simplement de selection les données en questions, puis de lancer la macro.
Code:
Selection.Sort Key1:=Range(Selection.Cells(1, 1).Offset(0, 1).Address(0, 0)), Order1:=xlAscending, Key2:=Range(Selection.Cells(1, 1).Address(0, 0)) _
    , Order2:=xlDescending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
    False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal

Evidement, le code est a mettre dans un bouton pour que tu puisses le lancer quand tu veux.

@+
 
Re : Tri alpha et décroissant

Bonjour,

je propose :

Sub Test1()
Range("A2").Sort Key1:=Range("B2"), Order1:=xlAscending, Key2:=Range("A2"), Order2:=xlDescending, Header:=xlNo
End Sub

ou

Sub Test2()
With Selection.CurrentRegion
.Sort Key1:=.Offset(0, 1).Resize(1, 1), Order1:=xlAscending, Key2:=.Resize(1, 1), Order2:=xlDescending, Header:=xlNo
End With
End Sub

Qui fontionne qq soit l'endroit où on se trouve dans la plage de données
 

Pièces jointes

Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

  • Question Question
Power Query tri powerquery
Réponses
9
Affichages
1 K
Réponses
7
Affichages
747
Réponses
10
Affichages
720
Retour