Private Sub Worksheet_Change(ByVal Target As Range)
Dim colA As Range, colB As Range, colD As Range, decal&, i&
Set colA = [Tableau2].Columns(1).Cells
Set colB = [Tableau2].Columns(2).Cells
Set colD = [Tableau2].Columns(4).Cells
Set Target = Intersect(Target, Union(colA, colB, colD))
If Target Is Nothing Then Exit Sub
decal = colA.Row - 1
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
For Each Target In Target
i = Target.Row - decal
If colB(i) = colD(i) Then colA(i) = Now Else colA(i) = ""
Next
Application.EnableEvents = True 'réactive les évènements
End Sub