Bonsoir,
Tu n'as pas besoin de faire 2 tableaux (sources d'erreurs)
Vois cette proposition
Private Sub Worksheet_Change(ByVal Target As Range)
'--- Filtre noms ---
If Not Application.Intersect(Target, Range("c4")) Is Nothing Then
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
Range("a8:g" & [a65000].End(xlUp).Row).AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("c3:c4"), CopyToRange:=Range("j8:p8"), Unique:=False
End If
'--- choix tri ---
Dim Cl%
If Not Application.Intersect(Target, Range("c2")) Is Nothing Then
Cl = WorksheetFunction.Match(Target, Range("a8:g8"), 0)
Range("a10:g" & [a65000].End(xlUp).Row).Sort Key1:= _
Cells(10, Cl), Order1:=xlAscending, Key2:= _
Cells(10, 2), Order2:=xlAscending, Header:=xlNo, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
End If
End Sub
Amicalement
Claude