effectivement, c'est un peu plus complexe qu'il n'y parait.
Voici le code :
Sub FiltreColonnes(ColonneCible, Col%)
Dim f As Worksheet, Tableau1 As Range
Set f = Sheets("suivi assurance maladie") '.........................................................................................instanciation de la feuille
Set Tableau1 = f.Range("A5:M" & f.Range("A" & Rows.Count).End(xlUp).Row) '...............................taille du tableau1
If ColonneCible <> "" And Col >= 3 And Col < 9 Then
f.Range("Tableau1").AutoFilter Field:=Col, Criteria1:=ColonneCible '.............................................filtre colonnes autres
ElseIf ColonneCible <> "" And (Col = 1 Or Col = 2 Or Col = 9) Then
f.ListObjects("Tableau1").Range.AutoFilter Field:=Col, Operator:=xlFilterValues, _
Criteria1:=Array(0, Format(ColonneCible, "yyyy/mm/dd")) '...........................................................filtre dates
ElseIf ColonneCible <> "" And Col > 9 Then
f.ListObjects("Tableau1").Range.AutoFilter Field:=Col, Criteria1:=Format(ColonneCible, "#.000") '....Filtre sur la colonne honoraires
ElseIf ColonneCible = "" Then
f.Range("Tableau1").AutoFilter ' ...............................................................................................................Suppression des filtres
End If
End Sub
Si tu changes les formats nombres, il faudra faire une intervention sur le code.
Cordialement