bonjour
j’ai essaye les deux codes suivants pour fileter la colonne A par rapport a tous les valeurs de la colonne H mais ça marche pas
Sub Macro1()
ActiveSheet.Range("$A$1:$C$15").AutoFilter Field:=1, Criteria1:=Range("H2:H9").Value
End Sub
Sub Macro1()
ActiveSheet.Range("$A$1:$C$15").AutoFilter Field:=1, Criteria1:=Array(Range("H2").Value, Range("H3").Value, Range("H4").Value, Range("H5").Value, Range("H6").Value, Range("H7").Value, Range("H8").Value, Range("H9").Value), Operator:=xlFilterValues
End Sub
bonjour
il y a deux solutions
1- utiliser le filtre avancé code présenter par Mr DanielCo Range("A1:A19").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("H1:H9"), Unique:=False
2- utiliser le code vba suivant proposé par Mr par Jean-Eric
Public Sub Filter_data()
Dim lo As ListObject, rng As Range
Dim rw As Long, i As Long
Dim arrayCriteria()
Set lo = Range("T_ID").ListObject
rw = lo.ListRows.Count
ReDim arrayCriteria(rw)
For i = 1 To rw
arrayCriteria(i) = lo.DataBodyRange.Cells(i, 1)
Next i
Set rng = Range("T_data")
With rng.ListObject
If .ShowAutoFilter Then .AutoFilter.ShowAllData
.Range.AutoFilter field:=1, Criteria1:=arrayCriteria, Operator:=xlFilterValues
End With
End Sub
Public Sub Reset_filter()
Dim rng As Range
Set rng = Range("T_data")
With rng.ListObject
If .ShowAutoFilter Then .AutoFilter.ShowAllData
End With
End Sub
Un exemple dans le fichier joint. test1.xlsm (28,2 Ko)