Private Sub Worksheet_Change(ByVal Target As Range)
Dim feuille As String, r As Range
feuille = "Feuil2" 'nom de la feuille source, à adapter
Set r = Intersect(Target.EntireRow, Range("D2:D" & Rows.Count), UsedRange)
If r Is Nothing Then Exit Sub
If FilterMode Then ShowAllData 'si la feuille est filtrée
Application.EnableEvents = False
For Each r In r.Areas 'si entrées multiples (copier-coller)
r.FormulaR1C1 = "=MaRecherche(RC2,'" & feuille & "'!C1:C4,1)" 'en colonne D
r.Offset(, 2).FormulaR1C1 = "=MaRecherche(RC2,'" & feuille & "'!C1:C4,2)" 'en colonne F
r.Offset(, 5).FormulaR1C1 = "=MaRecherche(RC2,'" & feuille & "'!C1:C4,3)" 'en colonne I
Next
Application.EnableEvents = True
End Sub