Masquer toutes les feuilles sauf 2 avant fermeture

Bonjour à tous,

Je travaille actuellement sur un fichier Excel avec des macros. N'ayant jamais fait de macros auparavant, je galère un peu...

Pour vous expliquer un peu, mon fichier Excel comporte plusieurs onglets dont un onglet Accueil qui sert de Menu.

Lorsque je clique sur un bouton de ce menu, cela m'ouvre la feuille correspondante. Et lorsque je clique sur le bouton retour, cela masque la feuille en question. Si je ne clique pas sur retour, la feuille reste visible dans la barre du bas.

Ce que je souhaite faire, c'est masquer toutes les feuilles au moment où je ferme le fichier sauf 2 (Accueil et Guide d'utilisation). Ainsi, lors de la prochaine ouverture de mon fichier seuls les onglets Accueil et Guide d'utilisation seront visibles.

J'ai trouvé ce code :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim Feuille As Worksheet

With Sheets("Accueil")

.Activate

End With

For Each Feuille In Sheets

If Feuille.Name <> "Accueil" Then Feuille.Visible = True

Next Feuille

Me.Save

End Sub

Je sais pas si ce code est bon mais si il l'est j'aimerai l'adapter pour que les onglets Accueil et Guide d'utilisation soient visibles.

J'ai essayé de le modifier: If Feuille.Name <> "Accueil" and "Guide d'utilisation" Then Feuille.Visible = True

mais ça ne fonctionne pas et lorsque j'ouvre mon fichier il ouvre toutes les feuilles....

Quelqu'un a une idée du problème ? Un autre code ?

Merci d'avance pour votre aide

Bonne journée

Sysqua

Bonjour,

De cette façon :

Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim Fe As Worksheet

    For Each Fe In Sheets
        If Fe.Name <> "Accueil" And Fe.Name <> "Guide d'utilisation" Then Fe.Visible = False
    Next Fe

    Sheets("Accueil").Activate

    Me.Save

End Sub

Bonjour Sysqua, bonjour le forum.

Essaie comme ça :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim O As Worksheet

For Each O In Sheets
    If Not O.Name = "Accueil" And Not O.Name = "Guide d'utilisation" Then O.Visible = False
Next O
Sheets("Accueil").Select
Me.Save
End Sub

[Édition]

Grillé par Theze que je salue au passage...

Bonjour,

Teste comme ceci

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim Feuille As Worksheet
        With Sheets("Accueil")

        End With
            For Each Feuille In Sheets
                If Feuille.Name <> "Accueil" And Feuille.Name <> "Guide d'utilisation" Then Feuille.Visible = False
            Next Feuille
    Me.Save
End Sub

Merci beaucoup Theze et ThauThème vos codes fonctionnent parfaitement !

Merci également à toi M12 pour ta réponse !

Bonne journée à tous

Rechercher des sujets similaires à "masquer toutes feuilles sauf fermeture"