Private Sub Worksheet_Change(ByVal Target As Range)
Set Target = Intersect(Target, Range("E6:E" & Rows.Count), UsedRange)
If Target Is Nothing Then Exit Sub
Dim t, i&
If FilterMode Then ShowAllData 'si la feuille est filtrée
For Each Target In Target.Areas 'si entrées/effacements multiples
If Target.Count = 1 Then
Target(1, 3) = IIf(Target = "", "", Now)
Else
t = Target 'tableau VBA, plus rapide
For i = 1 To UBound(t)
t(i, 1) = IIf(t(i, 1) = "", "", Now)
Next i
Target.Offset(, 2) = t 'restitution
End If
Next Target
End Sub