Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Afficher une feuille masquée selon contenu d'une cellule placée sur une autre feuille

  • Initiateur de la discussion Initiateur de la discussion pat66
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

pat66

XLDnaute Impliqué
Bonjour le forum,

A l'aide d'un bouton (forme), je souhaiterai afficher ou masquer une feuille dont le nom est précisé dans une cellule de la feuil1

Par exemple :
Feuil1, cellule C13 = "banane", c'est la feuille "banane" qui s'affiche ou se masque
Feuil1, cellule C13 = "pomme", c'est la feuille "pomme" qui s'affiche ou se masque
etc.....

un grand merci pour votre aide
 

Pièces jointes

Bonjour Pat,
un essai en PJ avec :
VB:
Sub Worksheet_Change(ByVal Nom As Range)
On Error GoTo Fin: If Nom.Count > 1 Then Exit Sub
    If Not Intersect(Nom, [C13]) Is Nothing Then
        For Each F In Worksheets
            If F.Name <> "accueil" And F.Name <> "Feuil1" Then Sheets(F.Name).Visible = False
        Next F
        Sheets(Nom.Value).Visible = xlSheetVisible
    End If
Fin:
End Sub
Il ne touche pas à Accueil et Feuil1, modifier au besoin.
 

Pièces jointes

Bonjour Sylvanu,

merci pour votre aide,

mais en fait comme précisé dans le post#1, je ne souhaite pas que la feuille s'affiche systématiquement parce que j'ai saisi "banane" par exemple, je souhaite l'afficher uniquement lorsque j'appuierai sur une forme à qui j'affecterai la macro (affichera ou masquera le nom de la feuille saisi en C13)

Une précision, j'ai fait un exemple avec 2 feuilles ("Accueil" et "feuil1" ) qui ne sont pas concernées par la macro, mais dans le classeur définitif, il y aura une dizaine de feuilles qui ne seront pas concernée par le contenu de C13, n'y a t'il pas un autre moyen que d'ajouter toutes ces feuilles à :

For Each F In Worksheets
If F.Name <> "accueil" And F.Name <> "Feuil1" Then Sheets(F.Name).Visible = False
Next F


merci d'avance
 
Re,
Je trouvais plus simple de juste valider une cellule pour afficher la feuille. Sorry. En PJ c'est rectifié.
dans le classeur définitif, il y aura une dizaine de feuilles qui ne seront pas concernée par le contenu de C13
La PJ donne une façon de faire.
Il faut mettre à jour Liste en fonction de votre vrai fichier.
( on peut aussi faire le contraire, mettre dans la liste les feuilles à traiter et non les feuilles à exclure )

Si dans le classeur il y avait la liste des feuilles concernées ( pomme, banane, noisette ... ) à masquer/démasquer alors on pourrait l'exploiter.
 

Pièces jointes

Re,
Une astuce dans cette PJ ( si c'est possible dans votre cas ) :
Chaque feuille qui peut être masquée/démasquée à un nom qui commence par "_" : _pomme, _banane, _noisette.
Dans ce cas, cela devient simple à traiter les feuilles à exclure avec :
VB:
Sub Masquer()
On Error GoTo Fin
    Dim Nom, F
    Nom = [C13]
    For Each F In Worksheets
        If Left(F.Name, 1) = "_" Then Sheets(F.Name).Visible = False
    Next F
    Sheets("_" & Nom).Visible = xlSheetVisible
Fin:
End Sub
Bien sur, c'est un principe, on peut modifier la règle de nommage comme vous l'entendez.
 

Pièces jointes

re,

les noms commencent bien bananes, pommes, etc.. il n'y a pas de feuilles qui commencent par autres chose comme par exemple _
donc je vais intégrer la version du post #4, mais est t'il possible qu'au 2ième clic, la feuille se masque à nouveau ?
1er clic = la feuille est visible, au 2ième la feuille se masque comme indiqué dans mon post #1

merci
 
re,

en regardant de près l'exemple2, pourriez vous m'expliquer pourquoi doit on indiquer les autres feuilles, alors je souhaite simplement pouvoir afficher ou masquer la feuille indiquée dans C13 à l'aide d'un macro affectée à une forme ?

merci pour votre aide
 
Re,
1er clic = la feuille est visible, au 2ième la feuille se masque comme indiqué dans mon post #1
Désolé c'était pas clair :
SI C13 = "Banane", clic sur la forme et la feuille "Banane" s'affiche, les autres masquées restent masquées

En PJ issu de la version 3.

pourriez vous m'expliquer pourquoi doit on indiquer les autres feuilles, alors je souhaite simplement pouvoir afficher ou masquer la feuille indiquée dans C13 à l'aide d'un macro affectée à une forme ?
Parce que vous pourriez avoir la feuille Pomme affichée mais dans C13 avoir Banane mais sans appui sur le bouton.
 

Pièces jointes

re,

ok, désolé de ne pas être très clair,
sinon je comprends, pour le 2ième clic c'est nickel, mais je ne souhaite pas que les feuilles soit renommées car j'ai pas mal de liens sur ces feuilles
 
mais je ne souhaite pas que les feuilles soit renommées car j'ai pas mal de liens sur ces feuilles
Si vous modifiez le nom des feuilles, tous vos liens seront remis à jour automatiquement.
( sauf si les liens sont créé en VBA ou issu d'une fonction Indirect )

Une autre solution serait d'avoir la liste des feuilles à masquer/démasquer, et dont C13 pourrait profiter avec une liste déroulante.
 
re,

oui c'est vrai, mais si je peux éviter de renommer, çà m'arrangerait

La liste déroulante de C13 correspondra aux feuilles : pomme, noisette, orange, banane, pruneau, poire, amende et peut évoluer ou être modifiée.....
et sera située sur la feuil1 dans la plage =$A$20:$A$40

et s'il n'y pas vraiment pas d'autres solutions alors je renommerais ces feuilles avec un "_" juste avant.

merci
 
Dernière édition:
re,

j'ai un bug avec la Exemple6, auriez vous une idée, merci ! car cette solution me parait idéale, elle m'évite de devoir préciser les feuilles qui ne sont pas concernées
 

Pièces jointes

  • bug..jpg
    18.4 KB · Affichages: 5
  • bug.jpg
    35.1 KB · Affichages: 7
Re,
J'ai cherché, cherché ... et trouvé.
L'erreur est que quand vous avez dans la liste un nom dont aucune feuille n'a ce nom et que vous la sélectionnez en C13 alors bug.
Essayez cette V7, je pense avoir corrigé le bug.
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…