Masquer feuilles contenant Macros

adrib94

XLDnaute Nouveau
Bonjour à tous,

Etant novice sur Excel, je viens vers vous pour demander de l'aide.


J'ai un fichier excel contenant plusieurs feuilles.
La première feuille contient des macros qui renvoient sur chacune d'elles (c'est comme une page menu).

Dès lors que je masque une feuille (clic droit -> Masquer), je ne peux plus revenir dessus grâce à ma Macro de la page Menu.
J'ai un message d'erreur de Microsoft Visual Basic indiquant "Erreur d'exécution '1004': La méthode Select de la classe Worksheet a échoué".


Comment faire pour masquer toutes mes feuilles, excepter la première qui me permet de vadrouiller à travers tout mon fichier?


J'espère avoir été clair :)
 

vgendron

XLDnaute Barbatruc
bonjour et bienvenu

Si j'ai bien compris, ce que tu souhaites faire ne va pas régler ton problème - je dirais meme que ca va agraver

dans ton fichier tu as une feuille 'Menu" qui par macro fait appel aux autres feuilles.
lors de ces différents appels... il y a des select.. et evidemment.. ca bug.. VBA ne sait pas sélectionner une cellule sur une feuille masquée (en fait. il ne devine pas de démasquer la feuille)
donc;. soit tu modifies ton code pour que la feuille soit démasquée avant de sélectionne..
soit tu modifies le code pour ne plus avoir de select.. en utilisant les With sheets("nomfeuill") ---- End with

mais la.. sans meme voir à quoi ressemble ton fichier et code. on va pas pouvoir t'aider plus..

Il faudrait que tu postes une copie anonymisée de ton fichier (=pas de données perso telles que noms adresse tel numéro comptes ou sécu... - juste des données bidon)
 

phlaurent55

Nous a quittés en 2020
Repose en paix
bonjour adrib,

voir fichier joint
il suffit de sélectionner le nom de la feuille dans la liste pour la rendre visible et la sélectionner
un retour sur la feuille 1 masquera les autres feuilles

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    25.9 KB · Affichages: 74

Yurperqod

XLDnaute Occasionnel
Bonjour à tous

Si tu rajoutes cette ligne , y'a plus d'erreur
VB:
Sub Bouton1_Cliquer()
Sheets("Feuil2").Visible = True 'ligne ajoutée
Sheets("Feuil2").Select
End Sub
Il faut faire pareil pour les autres macros en changeant le nom des feuilles
 

adrib94

XLDnaute Nouveau
Bonjour Yurperqod,

Quand je mets ce code la feuille est toujours visible en bas.
En revanche si je fais clic droit --> masquer elle disparaît. Ensuite, quand je clic sur mon bouton 1 je suis envoyé comme demandé sur la Feuille cachée mais elle réapparaît automatique dans les onglets en bas.
Comment faire ??
 

Yurperqod

XLDnaute Occasionnel
Si tu veux être envoyé sur une feuille, elle sera forcément visible.

Ce tu que tu veux, c'est qu'au départ seule la feuille Menu soit visible, et quand on clique sur le bouton qui envoie vers la feuille 1, seules la feuille Menu et la feuille 1 sont visibles et les autres cachées?
 

Si...

XLDnaute Barbatruc
Bonjour

As-tu testé la proposition de Philippe ? Elle vaut le coup d'œil ;).

Si le contrôle ListBox t'embête voilà une autre proposition - analogue dans l'action : clic sur le nom pour afficher l'onglet, l'onglet Menu restant affiché autant cliquer sur son nom pour y revenir !

Remarque : en cas d'ajout de feuilles, il faut réinitialiser la liste en lançant la macro Vu.
 

Pièces jointes

  • Afficher Aller vers.xlsm
    27.5 KB · Affichages: 35

phlaurent55

Nous a quittés en 2020
Repose en paix
Re,

As-tu testé la proposition de Philippe ? Elle vaut le coup d'œil ;).

Remarque : en cas d'ajout de feuilles, il faut réinitialiser la liste en lançant la macro Vu.

Une autre proposition qui permet d'ajouter (ou supprimer) des feuilles et de les renommer sans se soucier de l'alimentation de la ListBox et sans relancer une quelconque macro.

à+
Philippe
 

Pièces jointes

  • 111.xlsm
    29.8 KB · Affichages: 50

phlaurent55

Nous a quittés en 2020
Repose en paix
Re-Bonjour à tous,

Étonné que la solution jointe au post#11 ne te plaise pas, elle est pourtant beaucoup plus complète que ta dernière demande:
En partant de mon fichier type, comment codes-tu pour obtenir ce que tu viens de me montrer?
qui peut se solutionner par:

Code:
Sub Bouton1_Cliquer()
Sheets("Feuil2").Visible = -1
Sheets("Feuil2").Select
End Sub
Sub Bouton2_Cliquer()
Sheets("Feuil3").Visible = -1
Sheets("Feuil3").Select
End Sub
Sub Bouton3_Cliquer()
Sheets("Feuil4").Visible = -1
Sheets("Feuil4").Select
End Sub
Sub Bouton4_Cliquer()
Sheets("Feuil5").Visible = -1
Sheets("Feuil5").Select
End Sub
Sub Feuil2_Bouton1_Cliquer()
Call masque
End Sub
Sub Feuil3_Bouton1_Cliquer()
Call masque
End Sub
Sub Feuil4_Bouton1_Cliquer()
Call masque
End Sub
Sub Feuil5_Bouton1_Cliquer()
Call masque
End Sub
Sub masque()
For i = 2 To Sheets.Count
Sheets(i).Visible = 2
Next i
End Sub

à+
Philippe
 

Discussions similaires

Réponses
3
Affichages
1 K
Compte Supprimé 979
C

Membres actuellement en ligne

Statistiques des forums

Discussions
312 023
Messages
2 084 715
Membres
102 637
dernier inscrit
TOTO33000