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

Choix d'onglets à partir menu déroulant

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 !

moustic54

XLDnaute Occasionnel
Apparition d'onglets gràce à un menu déroulant

Bonsoir à tous

Je souhaiterai pouvoir faire apparaitre certains onglets en fonction du choix opéré à partir d'une liste de validation mais j'ignore comment faire ou si c'est seulement réalisable.

Merci d'avance si ceux et celles qui pourront m'apporter leur aide.
 

Pièces jointes

Dernière édition:
Re : Choix d'onglets à partir menu déroulant

Re...
(...)
Bonsoir Roger,
Je sais que tu as déjà insrit la macro mais je ne la comprends pas c'est pourquoi j'ai choisi la plus simple des macros. Mais puisque cela ne fonctionne pas, je vais tenter d'adapter la tienne.
(...)
Cette procédure est moins difficile à comprendre qu'il peut paraître au premier abord. J'y joins quelques commentaires qui peuvent permettre (peut-être...) de mieux s'y retrouver.
Code:
[COLOR="DarkSlateGray"][B]Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer, j As Integer
Dim Cat, xCat As String, nomCat As String, nFeuille As String
4    If Target.Cells(1, 1).Address = "$I$10" Then
5       Cat = Array("normal", "autre")
6      nomCat = Target.Cells(1, 1).Value
7      If nomCat <> "normal" Then nomCat = "autre"
8      Application.ScreenUpdating = False
9      With ThisWorkbook.Sheets
10        For i = 1 To .Count
11           nFeuille = .Item(i).Name
12           For j = 0 To UBound(Cat)
13              xCat = Cat(j)
14              If xCat = nFeuille Then .Item(i).Visible = (nFeuille = nomCat)
15           Next j
16        Next i
17     End With
18     Application.ScreenUpdating = False
19  End If

[COLOR="SeaGreen"]'Commentaires :
'6                'nomCat' prend la valeur sélectionnée en "I10".
'7                'nomCat' prend la valeur "autre" si "I10" contient autre chose que "normal".
'9,10,...,16,17   On va balayez l'ensemble des feuilles.
'11              'nFeuille'  prend le nom de la i-ème feuille...
'12,...,15  ...   pour le comparer aux noms de la liste 'Cat' créée en ligne 5.
'13               'xCat' prend le j-ème élément de la liste 'Cat'.
'14               Si 'nFeuille' est dans la liste, alors on affiche cette feuille si elle a
'     le nom sélectionné en "I10" (car nFeuille = nomCat renvoie True) ou on masque
'     cette feuille si son nom n'est pas celui sélectionné en "I10"
'     (car nFeuille = nomCat renvoie False).
'     L'état des feuilles dont le nom n'est pas dans la liste de choix de "I10" ne
'     sera donc modifié par cette procédure.[/COLOR]
End Sub[/B][/COLOR]
La procédure de Lii fonctionne également, même si elle ne donne pas le même résultat (elle masque aussi les feuilles dont le nom n'est pas dans la liste de choix). Tout dépend du résultat recherché, que nous ne connaissons pas exactement.​
ROGER2327
#2082
 
Re : Choix d'onglets à partir menu déroulant

Re....

Merci Roger pour l'explication détaillée de ta macro.
En fait si je veux obtenir l'affichage de tel ou tel onglet (onglet qui ne porte pas obligatoirement le même nom que la liste déroulante car pour être plus explicite le nom de mes onglets est plus long) c'est pour éviter toute erreur de saisie d'un 2eme onglet.
L'ensemble des utilisateurs du fichier ont 1ere feuille identique, les onglets suivants qui reprennent en grande partie les infos de la feuille 1 dépendra du choix fait dans la liste déroulante.
Le résultat recherché était d'avoir, à partir d'une 1ere feuille identique, la possibilité d'afficher plusieurs modèles sur chacun des onglets, le choix de ces derniers étant subordonné à cette fameuse liste de validation.(en masquant les autres onglets, on limite ainsi les risques d'erreur)
Je ne sais pas si j'ai été clair dans mes explications.
 
Re : Choix d'onglets à partir menu déroulant

Re,

Il n'y a pas de raison pour que B2 agisse avec ma macro événementielle, même si les listes sont identiques !
Voir la version 2 pour la suite.

Re, j'ai enfin compris pourquoi cela ne fonctionnait pas, le nom de mes onglets est plus long car plus explicite que les noms figurant dans la liste déroulante (mais je ne peux pas faire autrement même si mes onglets comprennent au moins l'un des noms composant la liste de validation)

Quant à l'affichage de la seconde liste de validation (cellule D = 1) liste dans la cellule F, je pensais que cela pouvait fonctionner avec des cases à option mais non, çà ne marche pas non plus.

Mais merci quand même Lii, je vais devoir revoir tout çà.

Bonne soirée à tous
 

Pièces jointes

Re : Choix d'onglets à partir menu déroulant

Re,

tu as combien d'onglets ? Leur nombre et nom ont une influence sur la macro.
Voir fichier avec une solution possible pour pour les options.

En plus de la feuille 1, j'ai 3 onglets liés à la liste de validation. Quant aux noms des onglets, ils ne cessent d'être modifiés en fonction des volontés des uns et des autres, la seule constante est normal, difficile, très difficile c'est d'ailleurs pour cette raison que je les avais pris comme terme dans ma liste déroulante.
Pour cette raison également que j'avais opté pour cette macro dans laquelle le nom es onglets sont écrits "en dur" (mais qui me crée des soucis)

N'existe - t - il pas la possibilité de caractère joker comme le * par exemple ?
 
- 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

Réponses
3
Affichages
736
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…