Private Sub Worksheet_Calculate()
Dim lundi As Date, dimanche As Date, r As Range
[C5:I18].ClearContents 'RAZ
If Not IsDate([I2] & "/" & [G2] & "/" & [D2]) Then Exit Sub
lundi = [C4]
dimanche = [I4]
With Sheets("Data")
Set r = .Range("A2", .Range("A" & .Rows.Count).End(xlUp))
End With
On Error Resume Next 'si le texte en r n'est pas une référence
For Each r In r
If r(1, 2) >= lundi And r(1, 2) <= dimanche Then Range(r) = r(1, 3)
Next
End Sub