1. Ce site utilise des "témoins de connexion" (cookies) conformes aux textes de l'Union Européenne. Continuer à naviguer sur nos pages vaut acceptation de notre règlement en la matière. En savoir plus.

Masquer feuilles contenant Macros

Discussion dans 'Forum Excel' démarrée par adrib94, 12 Septembre 2017.

  1. adrib94

    adrib94 XLDnaute Nouveau

    Inscrit depuis le :
    12 Septembre 2017
    Messages :
    7
    "J'aime" reçus :
    0
    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 :)
     
  2. vgendron

    vgendron XLDnaute Barbatruc

    Inscrit depuis le :
    24 Février 2009
    Messages :
    3730
    "J'aime" reçus :
    224
    Utilise:
    Excel 2007 (PC)
    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)
     
  3. phlaurent55

    phlaurent55 XLDnaute Barbatruc

    Inscrit depuis le :
    27 Septembre 2007
    Messages :
    9151
    "J'aime" reçus :
    905
    Sexe :
    Masculin
    Habite à:
    Saint-Vincent Belgique
    Utilise:
    Excel 2007 (PC)
    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
      Taille du fichier:
      25.9 Ko
      Affichages:
      16
  4. Yurperqod

    Yurperqod XLDnaute Occasionnel

    Inscrit depuis le :
    28 Juin 2016
    Messages :
    367
    "J'aime" reçus :
    21
    Utilise:
    Excel 2013 (PC)
    Bonjour à tous

    adrib94
    Ta feuille est une feuille de type: Macro Ms Excel 4.0 ?
    Est-ce les macros dans cette feuille, on peut les récrire en VBA ? et donc les mettre dans un module standard à la place de la feuille Macro1 ?
     
  5. adrib94

    adrib94 XLDnaute Nouveau

    Inscrit depuis le :
    12 Septembre 2017
    Messages :
    7
    "J'aime" reçus :
    0
    Bonjour à tous,
    Merci pour vos retours.
    Je post un fichier type qui contient les mêmes macros que mon fichier officiel
     

    Pièces jointes:

  6. Yurperqod

    Yurperqod XLDnaute Occasionnel

    Inscrit depuis le :
    28 Juin 2016
    Messages :
    367
    "J'aime" reçus :
    21
    Utilise:
    Excel 2013 (PC)
    Bonjour à tous

    Si tu rajoutes cette ligne , y'a plus d'erreur
    Code (Visual Basic):
    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
     
  7. adrib94

    adrib94 XLDnaute Nouveau

    Inscrit depuis le :
    12 Septembre 2017
    Messages :
    7
    "J'aime" reçus :
    0
    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 ??
     
  8. Yurperqod

    Yurperqod XLDnaute Occasionnel

    Inscrit depuis le :
    28 Juin 2016
    Messages :
    367
    "J'aime" reçus :
    21
    Utilise:
    Excel 2013 (PC)
    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?
     
  9. adrib94

    adrib94 XLDnaute Nouveau

    Inscrit depuis le :
    12 Septembre 2017
    Messages :
    7
    "J'aime" reçus :
    0
    Oui c'est exactement ca.
    La feuille Menu est toujours visible, et une autre feuille sera ouverte. Toutes les autres resteront cachées.
     
  10. Si...

    Si... XLDnaute Barbatruc

    Inscrit depuis le :
    7 Octobre 2010
    Messages :
    2527
    "J'aime" reçus :
    375
    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:

  11. phlaurent55

    phlaurent55 XLDnaute Barbatruc

    Inscrit depuis le :
    27 Septembre 2007
    Messages :
    9151
    "J'aime" reçus :
    905
    Sexe :
    Masculin
    Habite à:
    Saint-Vincent Belgique
    Utilise:
    Excel 2007 (PC)
    Re,

    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
      Taille du fichier:
      29.8 Ko
      Affichages:
      10
  12. Si...

    Si... XLDnaute Barbatruc

    Inscrit depuis le :
    7 Octobre 2010
    Messages :
    2527
    "J'aime" reçus :
    375
    Re

    Voilà un petit complément pour gérer automatiquement l'ajout, la suppression d'onglets, l'ajout de noms, dans la liste, ne correspondant pas à celui d'une feuille...
     

    Pièces jointes:

  13. adrib94

    adrib94 XLDnaute Nouveau

    Inscrit depuis le :
    12 Septembre 2017
    Messages :
    7
    "J'aime" reçus :
    0

    Merci pour vos réponses.
    J'aime bien la méthode que tu emplois Barbatruc. Peux tu m'expliquer comment tu codes cela?
     
  14. adrib94

    adrib94 XLDnaute Nouveau

    Inscrit depuis le :
    12 Septembre 2017
    Messages :
    7
    "J'aime" reçus :
    0
    Désolé du double post.
    En partant de mon fichier type, comment codes-tu pour obtenir ce que tu viens de me montrer?
     

    Pièces jointes:

  15. phlaurent55

    phlaurent55 XLDnaute Barbatruc

    Inscrit depuis le :
    27 Septembre 2007
    Messages :
    9151
    "J'aime" reçus :
    905
    Sexe :
    Masculin
    Habite à:
    Saint-Vincent Belgique
    Utilise:
    Excel 2007 (PC)
    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:
    qui peut se solutionner par:

    Code (Text):
    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
     
  16. DoubleZero

    DoubleZero XLDnaute Barbatruc

    Inscrit depuis le :
    14 Septembre 2010
    Messages :
    5628
    "J'aime" reçus :
    1161
    Utilise:
    Excel 2013 (PC)
    Bonjour à toutes zéàtous,

    Une autre suggestion en pièce jointe.

    A bientôt :)
     

    Pièces jointes:

  17. phlaurent55

    phlaurent55 XLDnaute Barbatruc

    Inscrit depuis le :
    27 Septembre 2007
    Messages :
    9151
    "J'aime" reçus :
    905
    Sexe :
    Masculin
    Habite à:
    Saint-Vincent Belgique
    Utilise:
    Excel 2007 (PC)
    DoubleZero aime votre message.
  18. Si...

    Si... XLDnaute Barbatruc

    Inscrit depuis le :
    7 Octobre 2010
    Messages :
    2527
    "J'aime" reçus :
    375
    Re
    Je reprends ma proposition avec quelques explications.

    «Une éruption de boutons et … bonjour les complications !» donc avec une liste dans un Usf -fichier ancien actualisé en y copiant tes feuilles (mais leur nom et leur contenu importe peu). Tu peux ajouter, supprimer, renommer … des onglets sans toucher aux macros.

    The happy little man (ki p…) say «Thanks Ó^Ò»
     

    Pièces jointes:

    Dernière édition: 16 Septembre 2017
    DoubleZero aime votre message.
  19. adrib94

    adrib94 XLDnaute Nouveau

    Inscrit depuis le :
    12 Septembre 2017
    Messages :
    7
    "J'aime" reçus :
    0
    Bonjour,

    Merci beaucoup pour toutes vos réponses.
    J'ai résolu mon problème grâce à votre aide !

    Bonne journée à tous :)
     

Partager cette page