VBA : Masquer des feuilles sauf une

Bonjour,

j'aimerai masquer toutes les feuilles d'un classeur sauf la feuille Accueil, après avoir cliqué sur son onglet

Comment faire ?

Merci d'avance

Dan

Bonjour

Avec ce code

Private Sub Worksheet_Activate()
For i = 1 To Sheets.Count
    If UCase(Sheets(i).Name) <> "ACCUEIL" Then Sheets(i).Visible = False
Next i
End Sub

Pour placer le code :

  • Click droite sur l'onglet "Accueil"
  • choisir l'option "visualiser le code"
  • Dans la fenêtre, placez le code proposé ci-dessus
  • Enregistrer votre fichier au format "XLSM"

Cordialement

Slt dan67,

Slt Dan au passage,

un autre essai:

Private Sub Worksheet_Activate()
Call MasquerFeuilles
End Sub

Sub MasquerFeuilles()
Dim WS As Worksheet

For Each WS In ThisWorkbook.Worksheets
    If WS.Name <> ActiveSheet.Name Then WS.Visible = xlSheetHidden
Next WS
End Sub

Merci à tous les deux.

J'ai testé les deux codes. Ils fonctionnent.

J'aimerais toutefois savoir pourquoi Dan utilise la fonction Ucase, qui si j'ai bien compris,e permet de convertir Accueil en majuscule.

Re,

Dan a noté (merci à lui):

If UCase(Sheets(i).Name) <> "ACCUEIL"

UCase("Accueil") = UCase("accueil") = UCase("acCuEil")= UCase("acceuIL")= ACCUEIL

c'est juste pour s'assurer que le nom Acceul sera toujours pris en consideration.

Sinon on peut aussi utiliser l'inverse

If LCase(Sheets(i).Name) <> "accueil"
Rechercher des sujets similaires à "vba masquer feuilles sauf"