Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [A3]) Is Nothing Then
Application.ScreenUpdating = False: Dim L%
MoisSuivant = Application.EDate(Target, 1)
For L = 30 To 40
If Cells(L, "A") >= MoisSuivant Then Exit For
Next L
Range("A29:A40").EntireRow.Hidden = False
Range(Cells(L, "A"), Cells(L + 8, "A")).EntireRow.Hidden = True
Application.ScreenUpdating = True
End If
End Sub