J'ai écrit ce code VBA pour m'aider à trier une base de données d'informations que j'ai (Nom, Numéro de facture, Adresse, etc). J'ai récemment appris comment trier en VBA sans sélectionner la plage réelle dans la feuille de calcul et avec ça j'ai essayé de trier avec plusieurs clés (clé1, clé2, clé3), mais sans succès. Je reçois toujours une erreur d'exécution 450 : Mauvais nombre d'arguments ou assignation de propriété invalide lors de l'exécution de ce code. Je veux pouvoir trier une plage de données plusieurs fois, par exemple trier une plage (A:K) par colonne F, puis par E, puis par B, etc.
Voici le code que j'utilise pour le tri de mes colonnes :
ActiveSheet.Range("A:K").Sort _
Key1:=ActiveSheet.Range("F2"), Order1:=xlAscending, HEADER:=xlYes, Ordercustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
Key2:=ActiveSheet.Range("E2"), Order2:=xlAscending, HEADER:=xlYes, Ordercustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption2:=xlSortNormal, _
Key3:=ActiveSheet.Range("D2"), Order3:=xlAscending, HEADER:=xlYes, Ordercustom:=1, MatchCase:=False, _
Orientation:=xlTopToBottom, DataOption3:=xlSortNormal
C'est étrange, car au début j'ai essayé d'exécuter les 2 premières clés (clé1, clé2) et ça a très bien fonctionné, puis j'ai copié et collé pour créer la clé suivante (clé3) et l'erreur est survenue. Quand j'essaie de déboguer, tout le code ci-dessus est mis en surbrillance.
La seule autre façon à laquelle je peux penser est d'exécuter le code où la plage (A:K) est sélectionnée dans la feuille de calcul, mais je ne veux pas faire ça.