Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [D3]) Is Nothing Then
Application.ScreenUpdating = False
DL = Cells(Cells.Rows.Count, "D").End(xlUp).Row
Formule = "=SIERREUR(INDEX(data!$A$1:$Z$1000;EQUIV(D5;data!$E:$E;0);EQUIV($D$3;data!$4:$4;0));"""")"
Range("E5:E" & DL).FormulaLocal = Formule
Range("E5:E" & DL) = Range("E5:E" & DL).Value
End If
Fin:
End Subv