Masquer toutes les feuilles sauf une quand on quitte

Bonjours à tous,

en aidant un collègue du forum, une question interessante s'est posée que je ne peux résoudre. Un classeur comporte plusieurs feuilles dont une feuille d'accueil.

Exemple: "accueil", "Feuille1", etc.

L'objectif est de masquer toutes les feuilles sauf "accueil", lorsque l'on ferme le classeur.

En fait, l'objectif premier est d'arriver automatiquement sur "Accueil", quand on ouvre le classeur et c'est la solution qui m'apparaît la meilleure.

Une solution VBA peut-elle répondre à cette question?

D'avance merci,

Bien cordialement,

Elfi

bonjour,

Voici une macro (à coller dans le module ThisWorkbook) qui fait cela :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.ScreenUpdating = False
Worksheets("acceuil").Visible = True
For i = 2 To Worksheets.Count
Worksheets(i).Visible = False
Next
Me.Save
End Sub

Nota1 : Il est supposé que la feuille "acceuil" est la première dans l'ordre des onglets.

Notaé : Cela suppose que le classeur est systématiquement sauvegardé à chaque fermeture...

A+

Bonjour,

si c'est le seul but, pourquoi ne met tu pas juste cela dans un module:

Sub auto_open()
Sheets("Accueil").Activate
End Sub

Plus besoins de masquer les feuilles et plus obligé d'enregistrer en quittant.

Cordialement

Salut le forum

Une autre facon de le faire

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 = xlSheetVeryHidden

Next Feuille

Me.Save

End Sub

Mytå

Bonjour le forum,

messages bien reçu.

Maguetlolo, ta proposition est bonne, mais dans mon cas, masquer certaines feuilles est indispensable. Sauvegarder avant de quitter aussi, puisqu'il s'agit en fait d'enregistrer des saisies de façon régulière.

Myta et Galopin1, merci pour vos réponses. Cependant cela ne fonctionne pas. en effet, pour Myta, j'ai un problème pour cette ligne du code

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

Je reçoie le message suivant:

La méthode 'visible' de l'objet 'worksheet' a échouée

Pour Galopin1, j'ai ce message d'erreur:

impossible de définir la propriété visible de la classe worksheet

et ce, dès que je quitte si je ne suis pas sur la feuille "accueil".

Il me faut préciser que pour des raisons de sécurité, systématiquement, il n'y a qu'une seule feuille visible quand on est dans le classeur. Ainsi, aller sur feulle2 par un bouton masque automatiquement toutes les autres

Exemple, si je clique dans "Accueil" consulter les saisies, la feuille "accueil" disparaitra et seule la feuille "consultation" sera visible. De même, si j'effectue une nouvelle saisie, la feuille saisie apparaîtra et uniquement elle. Peut-être le problème vient-il de là.

A vous relire,

Merci

amicalement,

Elfi

Bonjour à tous,

J'ai eu le même problème,

Pour que les macros pré-citées fonctionnent, il ne faut pas que le classeur soit protégé ,

ou alors le déprotéger.

exemple :

Sub Va_Balance()
    ActiveWorkbook.Unprotect Password:="afeh"
        With Sheets("Balance")
            .Visible = True
            .Activate
        End With
    ActiveWorkbook.Protect Password:="afeh"
End Sub

Claude.

Bonjour Claude,

le classeur n'est pas encore protégé, le problème ne vient donc pas de là.

En revanche, merci du tuyau car j'ai l'intention de le faire dès que mon projet sera arrivé à terme.

Amicalement,

Elfi

Rebonjours,

Galopin01, j'ai trouvé ce qui clochait chez moi. J'étatis persuadé que "accueil" était la première feuille. Or, une erreur de manip l'avait mis en deuxième. Ton code fonctionne à merveille maintenant.

Myta, même en mettant accueil en premier, j'ai toujours le même message avec ton code. Par curiosité, j'aimerai savoir pourquoi?

En tout cas merci à tous de votre disponibilité

amicalement,

Elfi

bonjour,

Je peux répondre pour Myta...Tu as donné toi même la réponse : la feuiille "Accueil" est masquée or Myta ne la démasque pas...donc la macro plante quand tu masques la dernière feuille. (Une feuille au moins doit rester visible.)

Sinon sur le fond la macro est la même Visible = False ou xSheetlVeryHidden la nuance est subtile et dépend de beaucoup de paramètres... A toi de voir.

A+

Bien reçu. Merci à toi et à Mytha. J'avais vu les similitudes entre ton code et celui de Myta. J'aime bien les siens mais pour une fois, c'est le tiens que j'ai conservé. Il n'est est pas moins vrai que Myta m'aide beaucoup dans mes différents travaux. J'ai transmis ton aide à Jérémy25 ( Question: mise à jour automatique d'une base de données source ) avec lequel je planchais depuis quelque temps.

Merci à tous une nouvelle fois,

Amicalement à tous,

Elfi

Rechercher des sujets similaires à "masquer toutes feuilles sauf quand quitte"