Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [A4:A1000]) Is Nothing Then
Application.ScreenUpdating = False
If Target = "PLAN" Then ' Si Plan on masque tout sauf titres
Masque
Exit Sub
End If
If Target = Application.Max([A:A]) Then Exit Sub ' Si on clique sur le max ça ne fait rien
Début = Target.Row + 1 ' Recherche de la ligne de début
Fin = Application.Match(Target + 1, [A1:A1000], 0) - 1 ' Recherche de la ligne de fin
Masque ' On masque tout
Rows(Début & ":" & Fin).EntireRow.Hidden = False ' On démasque le chapitre concerné
End If
Fin:
End Sub
Sub Masque() ' Masque toute lignes entre titres de chapitres
Application.ScreenUpdating = False
For i = 1 To Application.Max([A:A]) - 1
D = Application.Match(i, [A1:A1000], 0) + 1
F = Application.Match(i + 1, [A1:A1000], 0) - 1
Rows(D & ":" & F).EntireRow.Hidden = True
Next i
End Sub