Sub Worksheet_Change(ByVal Target As Range)
Dim x As Long
If Target.Count > 1 Or Target.Column <> 3 Then Exit Sub
If Target.Value = "" Or Target.Offset(0, 1).Value > 0 Then Exit Sub
x = Target.Row
'Colonne D
Target.Offset(0, 1).Value = Date
'Colonne J
Target.Offset(0, 7).Value = Evaluate("=IF(MONTH(D" & x & ")=MONTH(D" & x - 1 & "),J" & x - 1 & "+1,1)")
'Colonne K
Target.Offset(0, 8).Value = Evaluate("=CONCATENATE(MID(B" & x & ",1,2),YEAR(D" & x & "),(MONTH(D" & x & "))&TEXT(J" & x & ",""000""))")
'Colonne L
Target.Offset(0, 9).Value = "=IF(LEN(K" & x & ")<10, ""Erreur"", K" & x & ")"
End Sub