Bonjour,
Tu confonds filtrage et tri... !
Si je comprends bien, tu veux pouvoir trier dans un sens ou l'autre en gardant fixes 2 colonnes ! Si cela :
Sub TriSaufA1B1()
Dim plgFix, n%, i%, ad%
With ActiveSheet
n = .Cells(.Rows.Count, 1).End(xlUp).Row
plgFix = .Range("C3:D" & n).Value
If .Range("A3") > .Range("A" & n) Then ad = xlAscending Else ad = xlDescending
Application.ScreenUpdating = False
.Range("A2:H" & n).Sort key1:=.Range("A2"), order1:=ad, Header:=xlYes
.Range("C3:D" & n).Value = plgFix
End With
End Sub
Voilà qui fera les deux, tri selon l'ordre existant, il l'inversera à chaque fois ! et conserve C et D...
et un peu plus court que ton code enregistré ! Non ?
Bouton Tri sélectif pour tester.