'encadrer et séparer les noms de feuilles par des ?
Private Const ListeFeuillesCachees As String = "?Toulouse?Bayonne?Strasbourg?"
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
'si la feuille ne fait pas partie des feuilles à cacher, quitter la macro
If InStr(ListeFeuillesCachees, "?" & Sh.Name & "?") = 0 Then Exit Sub
'masquer la feuille
Sh.Visible = xlSheetHidden
End Sub
Private Sub Workbook_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Dim nomFeuille As String
'récupérer le nom de la feuille pointée par le lien hipertexe
nomFeuille = Application.Range(Target.SubAddress).Parent.Name
'si la feuille fait partie des feuilles cachées
If InStr(ListeFeuillesCachees, "?" & nomFeuille & "?") <> 0 Then
'afficher la feuille
On Error Resume Next
Application.Range(Target.SubAddress).Parent.Visible = xlSheetVisible
On Error GoTo 0
End If
'suivre le lien hipertexe
Application.EnableEvents = False
Target.Follow
Application.EnableEvents = True
End Sub