Tri alpha et décroissant

gimx

XLDnaute Junior
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

  • gimx_tri.xls
    13.5 KB · Affichages: 52
  • gimx_tri.xls
    13.5 KB · Affichages: 53
  • gimx_tri.xls
    13.5 KB · Affichages: 49

porcinet82

XLDnaute Barbatruc
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.

@+
 

Catrice

XLDnaute Barbatruc
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

  • gimx_tri.xls
    23.5 KB · Affichages: 38
  • gimx_tri.xls
    23.5 KB · Affichages: 37
  • gimx_tri.xls
    23.5 KB · Affichages: 46
Dernière édition:

Discussions similaires

Réponses
10
Affichages
436
Réponses
26
Affichages
920

Statistiques des forums

Discussions
312 379
Messages
2 087 769
Membres
103 662
dernier inscrit
rterterert