bonjour,

à un bouton j'affecte une macro de tri écrite automatiquement avec l'enregistreur de macro.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
    'Code avec Office 2003
    Selection.Sort Key1:=Range("C5"), Order1:=xlAscending, Key2:=Range("A5") _
        , Order2:=xlAscending, Key3:=Range("D5"), Order3:=xlAscending, Header:= _
        xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
        xlSortNormal
Avec 2003, je n'ai pas de problème.

En réalisant le même style d'opération sur d'autres colonnes avec Excel 2007, j'obtient un autre code... qui fonctionne pour les lignes inférieures à 42.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ActiveWorkbook.Worksheets("Groupes de xxxx").Sort.SortFields.Clear
    'ActiveWorkbook.Worksheets("Groupes de xxxx").Sort.SortFields.Add Key:= _
        Range("C5:C42"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    'ActiveWorkbook.Worksheets("Groupes de xxxx").Sort.SortFields.Add Key:= _
        Range("A5:A42"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    'With ActiveWorkbook.Worksheets("Groupes de xxxx").Sort
    '    .SetRange Range("A5:I42")
    '    .Header = xlGuess
    '    .MatchCase = False
    '    .Orientation = xlTopToBottom
    '    .SortMethod = xlPinYin
    '    .Apply
    'End With
En effet avec le type d'écriture d'excel 2007, on obtient dans le code la plage complète (colonne) à trier alors qu'avec XL2003, on a que la première cellule à trier de spécifiée (fixe dans la plupart des cas).

Enfin, ma question : Y-a-t-il un paramètre supplémentaire à spécifier avec XL2007 pour qu'il fasse comme 2003 ?

Merci.