La méthode de classment VBA de la class Range a échoué

Je sais qu'il existe plusieurs threads sur ce sujet, mais aucune des réponses n'a permis de résoudre cette erreur.

J'essaie de sortinger une table à l'aide de trois touches mais reçois l'erreur "Erreur d'exécution" 1004 ': la méthode de classment de la class Range a échoué "

J'ai essayé de changer "Range (" L2 ")" to ".Range (" L2 ")" et j'ai reçu l'erreur "Erreur de compilation: reference invalide ou non qualifiée"

J'ai essayé de spécifier la plage réelle au lieu d'utiliser des colonnes, j'ai supprimé les deux dernières keys et essayé juste le premier, j'ai toujours reçu l'erreur d'exécution.

shtData.Activate shtData.Range(Range("A2"), Range("Z8000").End(xlUp)).Sort _ Key1:=Range("L2"), Order1:=xlAscending, _ Key2:=Range("M2"), Order2:=xlAscending, _ Key3:=Range("B2"), Order3:=xlAscending, _ Header:=xlYes 

Si vous avez des suggestions, je l'apprécierais grandement. J'avais déjà travaillé hier et mon excel a écrasé et n'a pas récupéré les changements que j'ai faits, je ne peux pas comprendre pourquoi je ne peux pas le faire fonctionner aujourd'hui.

vous n'avez probablement pas de données dans la colonne "Z"

Si la plage des lignes de données peut être dimensionnée en toute security par la colonne "A", les cellules non vides sont les suivantes

 Option Explicit Sub main() Dim shtData As Worksheet Set shtData = Worksheets("Data") '<--| some setting of 'shtData' With shtData .Range("Z2", .Cells(.Rows.Count, "A").End(xlUp)).Sort _ Key1:=.Range("L2"), Order1:=xlAscending, _ Key2:=.Range("M2"), Order2:=xlAscending, _ Key3:=.Range("B2"), Order3:=xlAscending, _ Header:=xlYes End With End Sub 

S'il est possible que vous puissiez refind une nouvelle quantité de colonnes à l'avenir, vous pourriez faire quelque chose comme ça.

 With shtData Range(Range("A2"), Cells(Range("A8000").End(xlUp).Row, Range("ZZ2").End(xlLeft).Column) 

De cette façon, il sera automatiquement dimensionné la zone de sorting pour autant de colonnes que vous utilisez, ainsi que les lignes.