Affichage onglets depuis liste déroulante

Bonjour à tous,

25classeur3.xlsm (16.64 Ko)

Je ne retrouve plus mon post concernant mon précédent problème, je crée donc un nouveau sujet.

A partir d'une liste déroulante j'aimerai pouvoir afficher/masquer certains onglets d'un document Excel.

Pour faire simple, une fois que j'ai fais moi choix dans la liste déroulante je veux uniquement que certains onglets soit visible (en validant par une touche par exemple).

Dans le fichier joint j'ai des onglets masqués, j'ai faire apparaitre certains onglets en fonction du choix en cellule C4.

Est-ce possible?

Merci.

Bonjour,

C'est possible si les noms d'onglet correspondent à la selection. dans votre fichier : comédie dessin animés .. les onglet n'y sont pas.

Pour la méthode :

Soit vous utilisez l'évenement Private Sub Worksheet_SelectionChange(ByVal Target As Range)

(mais vous serez surement obligé de cliquer en dehors de la cellule qui vous sert à selectionner pour que l'évenement se déclenche )

Soit vous remplacer votre selecteur actuel par une Combobox et vous utilisez l'evènement change de cette combo.

35classeur3.xlsm (21.48 Ko)

Le code restera sensiblement le même :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' On déclare comme variable la feuille qui sera à rendre visible
Dim nomfeuille As String
nomfeuille = Worksheets("Feuil1").Range("c4").Value

'On rend invisible toutes les feuilles sauf Feuil1 
Worksheets("Action").Visible = 2
Worksheets("Thriller").Visible = 2
Worksheets("Rock").Visible = 2
Worksheets("Rap").Visible = 2
Worksheets("Aventure").Visible = 2

'On rend visible la feuille de notre variable
Worksheets(nomfeuille).Visible = -1

End Sub

Bonjour toutes et tous

coucou Xmenpl ^^ et merci

moins bien réalisé que, celui de Xmenpl qui est beaucoup plus souple et mieux codé

crdlt,

André

Merci à vous deux pour vos retours

Je me rends compte que mon document est un peu brouillon, je l'ai donc refait et allégé

L'idée reste la même, afficher uniquement certains onglets en fonction du choix fait d'une liste déroulante (Cellule B4 ) et validation du choix en cliquant sur une touche. Si possible il faudrait que ce soit dynamique, c'est à dire que si le choix dans B4 change il faudrait que l'affichage des onglets se mettent à jour.

Je sais pas si mes explications sont très claires, dans tous les cas merci pour votre aide!

21classeur3.xlsm (23.28 Ko)

Re, personnellement je préfère travailler avec des selecteurs indépendants ( combobox ) on les places ou on veut ; on les fait apparaître ou disparaitre...

BIen plus pratique qu'une liste de choix dans une cellule.

51classeur3.xlsm (50.52 Ko)

Affichage 1 seul onglet et bouton pour s'y rendre

ou affichage de tous les onglets du support selectionné.

C'est cool merci

Prtite question supplémentaire, on peut faire apparaître plusieurs onglets en fonction du chois de la combobox?

En gros si je choisis le support Dvd_Blu_Ray est-ce qu'on peut faire apparaître les onglets correspondants aux cellules E4 à E12?

Merci.

Ben c'est pas déjà ce que fait le bouton Bleu ?? Afficher tous les onglets du support

Quand je choisis le support en B4 et que je valide via la touche la macro plante sur mon pc, aucun onglet ne s'affiche.

Quand je choisis le support en B4 et que je valide via la touche la macro plante sur mon pc, aucun onglet ne s'affiche.

Bizarre celà fonctionne correctement de mon coté.

Vous selectionnez B4 ok exemple selection CD ensuite vous cliquez bien sur "Afficher tous les onglets du support" ? Bouton bleu

pas sur le bouton valider bouton vert ( qui lui sert à se rendre sur un onglet quand on a sélectionnée une catégorie précise. )

Je ne sais plus me servir d'Excel!

J'ai 2 zones bleues (support et catégorie), ce sont des zones de textes ?

J'ai aussi deux touches (Valider et RAZ).

Re télécharge mon fichier au dessus de support tu dois avoir un bouton bleu :

"Afficher tous les onglets du support"

Ah oui ça marche mieux! Merci.

Il me reste plus qu'à essayer de tout comprendre. ;-)

Pour voir les codes de chaque bouton :

Onglet développeur / Mode création

puis clic droit sur un des boutons "Code"

Ps ne pas oublier à la fin de désactiver "le mode Création"

Bonjour …

un autre exemple sans bouton mais un formulaire avec une liste variable (visible ou pas comme les Tableaux CD / DVD).

Bonjour à tous,

Au cas où, il est possible de boucler sur la collection des feuilles :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' On déclare comme variable la feuille qui sera à rendre visible
Dim nomfeuille As String
nomfeuille = Worksheets("Feuil1").Range("c4").Value

for each ws in worksheets
    if ws.name = nomfeuille then ws.visible = -1 else ws.visible = 2
next ws

End Sub

Cdlt,

Bonjour 3G

La boucle ainsi réalisée ne va pas rendre la Feuil1 invisible elle aussi ?

Salut Xmenpl,

Très bonne remarque ! Oui, je n'ai pas fait attention à ce détail (c'était surtout montrer la possibilité d'une boucle) :

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
' On déclare comme variable la feuille qui sera à rendre visible
Dim nomfeuille As String
nomfeuille = Worksheets("Feuil1").Range("c4").Value

for each ws in worksheets
    if ws.name = nomfeuille or ws.name = "Feuil1" then ws.visible = -1 else ws.visible = 2
next ws

End Sub

Ainsi, c'est mieux...

Je n'ai pas parfaitement suivi donc je ne me suis pas attardé sur les aspects autres que la possibilité de boucler. Je n'ai d'ailleurs pas compris pourquoi le code était dans la macro selectionchange par exemple.

Cdlt,

Je n'ai d'ailleurs pas compris pourquoi le code était dans la macro selectionchange par exemple.

Cdlt,

Oui moi non plus celà ne me plaisait pas sur l'évènement feuille,

du coup dans le dernier fichier présenté, j'ai utilisé des command bouton et des combobox. Plus facile ensuite d'afficher une seule ou

toutes les feuilles qui appartiennent une même sélection ( CD ou DVD ).

Mais pour l'astuce de la boucle : 10/10 bien mieux que ma méthode qui énumère toutes les feuilles.

Nickel !

Attention cependant à ne pas créer une boucle infinie de citations de citations !

Et au cas où (même si tu ne m'as rien demandé), il est possible de demander seulement certaines feuilles ainsi :

worksheets(array("feuil1", "feuil2")).visible = 2

Mais je pense qu'ici, la boucle est à privilégier...

A bientôt,

Rechercher des sujets similaires à "affichage onglets liste deroulante"