Tu peux utiliser le code ci-dessous :
Option Explicit
Sub Recherche()
Dim f1 As Worksheet, f2 As Worksheet
Dim i&, j&, d As Object
Set f1 = Sheets("Données"): Set f2 = Sheets("Recherche")
With f1
Set d = CreateObject("scripting.dictionary")
i = 2
Do While .Cells(i, 4).Value <> ""
d(.Cells(i, 4).Value) = i
i = i + 1
Loop
End With
With f2
i = 2
Do While .Cells(i, 1).Value <> ""
If d.exists(.Cells(i, 1).Value) Then
j = d(.Cells(i, 1).Value)
f1.Range(f1.Cells(j, 1), f1.Cells(j, 3)).Copy f2.Cells(i, 2)
End If
i = i + 1
Loop
End With
End Sub
On répertorie les différents éléments de la feuille Données en enregistrant la ligne faisant référence à l'article.
Ensuite on boucle les articles de la feuille Recherche.