Faire un tri avec 2 critères en Vba

Hpotter

XLDnaute Junior
Bonjour à tous,

Avec le code suivant je fais un tri par ordre alphabétique de la colone B de mon tableau. J'aimerai qu'un tri soit fait :

Premièrement sur la colonne K du plus grand au plus petit et deuxièment sur la colonne B par ordre alphabétique.

Pouvez-vous m'apporter votre aide s'il vous plait ?
Je vous en remercie par avance

Code:
Range("A3").Select
    ActiveWorkbook.Worksheets("P").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("P").Sort.SortFields.Add Key:=Range("B4:B500" _
        ), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("P").Sort
        .SetRange Range("A3:L500")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A3").Select
 

Paritec

XLDnaute Barbatruc
Re : Faire un tri avec 2 critères en Vba

Bonjour Hpotter le forum
essayes comme cela
a+
papou :)

Code:
Sub Classer()
   ActiveSheet.Range("A3:L" & Range("A65000").End(xlUp).Row).Sort Key1:=Range("K3") _
   , Order1:=xlAscending, Key2:=Range("B3"), Order2:=xlAscending, Header:=xlYes
End Sub
 

david84

XLDnaute Barbatruc
Re : Faire un tri avec 2 critères en Vba

Bonjour,
je pense que cette macro est obtenue avec l'enregistreur de macro.
Tu dois donc dans ta procédure placer ton 1er tri sur l'entête de la colonne K, puis sur l'entête de la colonne B en spécifiant à chaque fois ton ordre de tri.
Si tu n'y arrive pas, le pus simple est de nous joindre un fichier comme spécifié dans lorsque tu ouvres une discussion.
A+

Edit : bonjour Papou.
 

Paritec

XLDnaute Barbatruc
Re : Faire un tri avec 2 critères en Vba

Bonjour David:) Hpotter
voilà pour tenir compte de la feuille P car autrement si tu lances la macro d'un autre endroit pas bon, j'avais pas vu , j'avais lu activesheet à la place de activeworkbook!!!! Pardon!!
a+
papou :)

Code:
Sub Classer()
    With Sheets("P")
        .Range("A3:L" & .Range("A65000").End(xlUp).Row).Sort Key1:=.Range("K3") _
          , Order1:=xlAscending, Key2:=.Range("B3"), Order2:=xlAscending, Header:=xlYes
    End With
End Sub
 
Dernière édition:

Discussions similaires

Réponses
3
Affichages
643
Réponses
11
Affichages
495

Statistiques des forums

Discussions
312 581
Messages
2 089 917
Membres
104 306
dernier inscrit
Bouhlal