Private Sub Worksheet_Change(ByVal Target As Range)
Dim s As Object
With [C3] 'à adapter
If .Value = "" Or Intersect(Target, .Cells) Is Nothing Then Exit Sub
With Sheets(CStr(.Value))
.Visible = xlSheetVisible
For Each s In Sheets
If s.Name <> .Name Then s.Visible = xlSheetVeryHidden 'xlSheetHidden
Next
End With
End With
End Sub