Tri VBA sur critères multiples

Résolu/Fermé
steph92500 Messages postés 2 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 21 août 2012 - 21 août 2012 à 11:54
steph92500 Messages postés 2 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 21 août 2012 - 21 août 2012 à 17:23
Bonjour,

Je ne connais rien au VBA mais je dois modifier une macro.

Globalement cette macro doit trier les données de A10 à BK1000 sur les colonnes H, S, T, ... AE.

Mon code est le suivant :

Selection.Sort Key1:=Range("H10:H1000"), Order1:=xlDescending, Key2:=Range("S10:S1000"), Order2:=xlDescending, _
Key3:=Range("T10:T1000"), Order3:=xlDescending, Key4:=Range("U10:U1000"), Order4:=xlDescending, _
Key5:=Range("V10:V1000"), Order5:=xlDescending, Key6:=Range("W10:W1000"), Order6:=xlDescending, _
Key7:=Range("X10:X1000"), Order7:=xlDescending, Key8:=Range("Y10:Y1000"), Order8:=xlDescending, _
Key9:=Range("Z10:Z1000"), Order9:=xlDescending, Key10:=Range("AA10:AA1000"), Order10:=xlDescending, _
Key11:=Range("AB10:AB1000"), Order11:=xlDescending, Key12:=Range("AC10:AC1000"), Order12:=xlDescending, _
Key13:=Range("AD10:AD1000"), Order13:=xlDescending, Key14:=Range("AE10:AE1000"), Order14:=xlDescending, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
DataOption3:=xlSortNormal, DataOption4:=xlSortNormal, _
DataOption5:=xlSortNormal, DataOption6:=xlSortNormal, _
DataOption7:=xlSortNormal, DataOption8:=xlSortNormal, _
DataOption9:=xlSortNormal, DataOption10:=xlSortNormal, _
DataOption11:=xlSortNormal, DataOption12:=xlSortNormal, _
DataOption13:=xlSortNormal, DataOption14:=xlSortNormal

Pouvez-vous m'aider please ?
Y a t-il une limite au nombre de clés de tri ? ou c'est autres chose ?

Merci d'avance.
steph92500

2 réponses

lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
21 août 2012 à 16:29
Bonjour,
Avec Key1, Key2 etc.. je connais pas ?
Essaye avec..
    With Sheets("Feuil1")
        .Sort.SortFields.Clear
        .Sort.SortFields.Add Key:=Range("H10:H1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("T10:T1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("V10:V1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("X10:X1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("Z10:Z1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("AB10:AB1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        .Sort.SortFields.Add Key:=Range("AD10:AD1000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With .Sort
            .SetRange Range("H10:AD1000")
            .Header = xlGuess
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    End With


A+
0
steph92500 Messages postés 2 Date d'inscription mardi 21 août 2012 Statut Membre Dernière intervention 21 août 2012
21 août 2012 à 17:23
Merci beaucoup ça marche parfaitement !
A+
0