Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.

@+
 

ballmaster

XLDnaute Occasionnel
Re : Tri alpha et décroissant

Tiens,

regarde ce fichier et dis-moi si cela te conviens

Ballmaster
 

Pièces jointes

  • tri1.xls
    28.5 KB · Affichages: 55
  • tri1.xls
    28.5 KB · Affichages: 60
  • tri1.xls
    28.5 KB · Affichages: 54

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
458
Réponses
26
Affichages
963
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…