Dim Debut As Byte, Fin As Byte
Private Sub Worksheet_Change(ByVal Target As Range)
Dim I As Byte
If Target.Count > 1 Or Target.Address = "$D$3" And Target.Address = "$E$3" Then Exit Sub
Application.ScreenUpdating = False
Debut = 8: Fin = 44: Call Cache(Debut, Fin)
Debut = 56: Fin = 93: Call Cache(Debut, Fin)
Debut = 103: Fin = 140: Call Cache(Debut, Fin)
Application.ScreenUpdating = True
End Sub
Sub Cache(Debut, Fin)
For I = Debut To Fin
Cells(I, 1).EntireRow.Hidden = False
If Cells(I, 2).Value = "" Then Cells(I, 1).EntireRow.Hidden = True
Next I
End Sub