Bonjour,

J'utilise dans une macro pour la première les tris des données et les sous-totaux. Je suis parti de l'enregistreur qui m'a donné ceci :

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
16
17
18
19
20
21
22
23
24
25
26
27
Sub Macro2()
'
' Macro2 Macro
'
 
'
    Range(Selection, Selection.End(xlToRight)).Select
    Range(Selection, Selection.End(xlDown)).Select
    ActiveWorkbook.Worksheets("Detail local accounts").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Detail local accounts").Sort.SortFields.Add Key:= _
        Range("A2:A54"), SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder _
        := _
        "SALARY EXPENSES,CAR AND TRAVEL EXPENSES,TELECOMMUNICATIONS,MARKETING,VARIETIES REGISTRATION FEES,OTHER EXPENSES,OTHER INCOME,DEPRECIATION ON ASSETS" _
        , DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Detail local accounts").Sort
        .SetRange Range("A1:E54")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Selection.Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(5), _
        Replace:=False, PageBreaks:=False, SummaryBelowData:=True
    Selection.Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(5), _
        Replace:=False, PageBreaks:=False, SummaryBelowData:=True
End Sub
J'ai tenté de l'alléger en l'écrivant ainsi :

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
Sub Mon_test()
 
Dim LR1 As Long
 
    With Sheets("Detail local accounts")
 
    LR1 = .Range("A" & .Rows.Count).End(xlUp).Row
 
    'Trier données et inclure sous-totaux
 
        .Range("A1:A" & LR1).Sort , SortOn:=xlSortOnValues, Order:=xlAscending, CustomOrder:="SALARY EXPENSES,CAR AND TRAVEL EXPENSES,TELECOMMUNICATIONS,MARKETING,VARIETIES REGISTRATION FEES,OTHER EXPENSES,OTHER INCOME,DEPRECIATION ON ASSETS"
        .Range("A1:E" & LR1).Subtotal GroupBy:=1, Function:=xlSum, TotalList:=Array(5), Replace:=True, PageBreaks:=False, SummaryBelowData:=True
        .Range("A1:E" & LR1).Subtotal GroupBy:=2, Function:=xlSum, TotalList:=Array(5), Replace:=False, PageBreaks:=False, SummaryBelowData:=True
 
End Sub
Bien entendu, ça bloque sur la première ligne en-dessous du commentaire avec le message d'erreur suivant : Application-defined or Object-defined error.

Pouvez-vous m'aider à résoudre mon problème SVP ? Une deuxième question suivra.
Je vous remercie grandement par avance !