Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D:D")) Is Nothing Or Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
If Range("D" & Target.Row) <> "" Then
Range("B" & Target.Row) = Date
Range("C" & Target.Row) = Time
End If
Application.EnableEvents = True
End Sub