Bonjour,

J'ai un problème de tri, en vba, avec une erreur 1004 récalcitrante.

Le tri s'effectue sur une zone nommée, par exemple "zone_test". Le nombre de lignes de la zone, qui est définie par la formule DECALER, peut varier, mais démarre toujours à la ligne 9 (jamais avant). Le tri doit s'effectuer, non sur cette zone, mais sur les lignes de cette zone.

J'ai donc débuté ma macro 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
Application.ScreenUpdating = False
Application.EnableEvents = False
 
ActiveSheet.Unprotect
 
    Dim ws As Worksheet
    Dim lignes As Range
 
    Set ws = ThisWorkbook.Worksheets(1)
    Set lignes = ws.Range("zone_test").Rows
 
    With lignes
        .Sort Key1:=Range("AO1"), Key2:=Range("AQ1"), Key3:=Range("J1"), Header:=xlNo, _
        Order1:=xlDescending, Order2:=xlAscending, Order3:=xlAscending
    End With
J'ai essayé de changer AO1 par AO, ainsi que AQ1 par AQ et J1 par J, mais cela ne change rien. J'ai toujours une erreur 1004.
Et la feuille est bien déprotégée avant le tri.
Quand à la zone nommée, elle définit le nombre de lignes où se trouvent des valeurs (par exemple, J9:j32). Dans ce cas, lignes devrait sélectionner les lignes 9 à 32.

D'où vient l'erreur?