Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 Or Target.Column = 2 And Target.Row > 3 Then
If Cells(Target.Row, 3).Value = 0 Then
With Cells(Target.Row, 4).Validation
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:="=DemiJournée"
End With
Else
Target.Offset(0, 1).Validation.Delete
End If
End If
End Sub
[/code