Re …
« celà ne me plaisait pas sur l'évènement feuille » et pourtant c’est simple
Dim P As Range, Sh As Worksheet
Private Sub Worksheet_SelectionChange(ByVal R As Range)
For Each Sh In Sheets
If Sh.Name <> "Feuil1" Then Sh.Visible = 2
Next
If R.Address = [CD].Rows(0).Address Then Set P = [CD]: Vu
If R.Address = [DVD].Rows(0).Address Then Set P = [DVD]: Vu
End Sub
Sub Vu()
Application.ScreenUpdating = 0
Feuil1.Visible = 1
For Each R In P: Sheets(R.Text).Visible = 1: Next
End Sub
où CD et DVD sont 2 tableaux dont seuls le titres sont visibles et servent à afficher (ou pas) les onglets correspondants.
Maintenant, je pense qu’il est plus intéressant d’aller dans la feuille voulue pour d'autres travaux et c'est celaqui m’a fait proposer la première réponse (qui exigera moins de gymnastique avec un ShowModal à False).