Re,
Lorsque tu mets Header:=xlGuess, tu laisse Excel choisir si il y a un en-tête ou pas d'où ton problème !
Avec Header:=xlYes tu indiques que ton tableau possède une ligne d'en-tête
Avec Header:=xlNo tu indiques que ton tableau ne possède pas de ligne d'en-tête
Excel détecte automatiquement le tableau.
Donc la bonne syntaxe est :
Range("A2:Z" & DerLigne).Sort Key1:=Range("C3"), Order1:=xlAscending, Key2:=Range _
("D3"), Oder2:=xlAscending, Header:=xlYes, OrderCustom:=1, MatchCase _
:=False, Orientation:=xlTopToBottom, DataOption1:=xlSortNormal, _
DataOption2:=xlSortNormal
Avec A2 au lieu de A3 et xlYes au lieu de xlGuess
Edit : pour éviter tout problème il est préférable que la ligne située au dessus du tableau ne contient aucune donnée (ni formule), dans ton cas, seulement les boutons