Bonjour,
Une autre proposition.
Les données sont sous forme de tableaux structurés.
Alt F8, exécuter FilterAndCopyData.
Cdlt.
Public Sub FilterAnCopyData()
Dim ws As Worksheet, td As Range, a, b
Set ws = Worksheets("base")
Set td = Range("Certificats")
If td.ListObject.ShowAutoFilter Then td.ListObject.AutoFilter.ShowAllData
a = Application.Match(ws.Cells(2, 2).Value, td.Columns(1), 0)
b = Application.Match(ws.Cells(2, 3).Value, td.Columns(3), 0)
If Not IsError(a) And Not IsError(b) Then
With td.ListObject.Range
.AutoFilter field:=1, Criteria1:=ws.Cells(2, 2).Value
.AutoFilter field:=3, Criteria1:=ws.Cells(2, 3).Value
End With
With Range("Résultat").ListObject
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
td.CurrentRegion.Offset(1).Copy .Range.Cells(2, 1)
End With
td.ListObject.AutoFilter.ShowAllData
End If
End Sub