Masquer onglet selon une valeur en VBA
cococorine
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
via55 Messages postés 14512 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai 5 feuilles de calcul soit feuil1, feuil2, feuil3, feuil 4 et feuil5
Dans la feuille 5 dans la celulle "B2" j'ai une liste de choix avec comme valeur 1, 2, 3 et 4
Si je sélectionne 1 alors les feuilles 2 , 3 et 4 se masquent et la feuille 1 soit active
Si je sélectionne 2 alors les feuilles 1 , 3 et 4 se masquent et la feuille 2 soit active
Si je sélectionne 3 alors les feuilles 1 , 2 et 4 se masquent et la feuille 3 soit active
Si je sélectionne 4 alors les feuilles 1 , 2 et 3 se masquent et la feuille 4 soit active
Quelqu'un peut-il me venir en aide SVP
Cordialement
J'ai 5 feuilles de calcul soit feuil1, feuil2, feuil3, feuil 4 et feuil5
Dans la feuille 5 dans la celulle "B2" j'ai une liste de choix avec comme valeur 1, 2, 3 et 4
Si je sélectionne 1 alors les feuilles 2 , 3 et 4 se masquent et la feuille 1 soit active
Si je sélectionne 2 alors les feuilles 1 , 3 et 4 se masquent et la feuille 2 soit active
Si je sélectionne 3 alors les feuilles 1 , 2 et 4 se masquent et la feuille 3 soit active
Si je sélectionne 4 alors les feuilles 1 , 2 et 3 se masquent et la feuille 4 soit active
Quelqu'un peut-il me venir en aide SVP
Cordialement
A voir également:
- Xlveryhidden
- Raccourci rouvrir onglet fermé - Guide
- Masquer une conversation whatsapp - Guide
- Comment appeler en masquer - Guide
- Comment masquer les amis sur facebook - Guide
- Comment masquer une photo dans la galerie - Guide
5 réponses
Bonjour cocorine
ALT+F11 pour ouvrir éditeur VBA
Double clic sur Feuil5 dans l'arborescence à gauche
copie et colle la macro suivante dans la page blanche et ferme éditeur vba
Cdlmnt
Via
ALT+F11 pour ouvrir éditeur VBA
Double clic sur Feuil5 dans l'arborescence à gauche
copie et colle la macro suivante dans la page blanche et ferme éditeur vba
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B2")) Is Nothing Then For n = 1 To 4 If n = Target.Value Then Sheets(n).Visible = True Else Sheets(n).Visible = False Next Sheets(Target.Value).Activate End If End Sub
Cdlmnt
Via
Bonsoir,
J'ai probablement pasété claire et je pensais adapter mon exemple avec mon fichier mais cela ne fonctionne pas comme je veux, il me masque plein de feuilles.
Donc j'ai bien 5 feuilles pour l'exemple en vrai + de 60, dans la feuille choix dans la celulle "B2" j'ai une liste de choix avec comme valeur CHANEL, GUERLAIN, DIOR, NINA.
Les feuilles se nomment Guerlain_F1, Dior_B, Chanel_F6, Nina_ricci_9
Si je sélectionne CHANEL alors les feuilles Guerlain_F1, Dior_B, Nina_ricci_9 sont masquées
Si je sélectionne GUERLAIN alors les feuilles Chanel_F6, Dior_B, Nina_ricci_9 sont masquées
Si je sélectionne DIOR alors les feuilles Chanel_F6, Guerlain_F1, Nina_ricci_9 sont masquées
Si je sélectionne NINA alors les feuilles Chanel_F6, Guerlain_F1, Dior_B sont masquées
Avec les noms des feuilles
Est-ce que l'on peut mettre aussi sheetveryhidden pour être tranquille ??
Merci d'avance
Cordialement
J'ai probablement pasété claire et je pensais adapter mon exemple avec mon fichier mais cela ne fonctionne pas comme je veux, il me masque plein de feuilles.
Donc j'ai bien 5 feuilles pour l'exemple en vrai + de 60, dans la feuille choix dans la celulle "B2" j'ai une liste de choix avec comme valeur CHANEL, GUERLAIN, DIOR, NINA.
Les feuilles se nomment Guerlain_F1, Dior_B, Chanel_F6, Nina_ricci_9
Si je sélectionne CHANEL alors les feuilles Guerlain_F1, Dior_B, Nina_ricci_9 sont masquées
Si je sélectionne GUERLAIN alors les feuilles Chanel_F6, Dior_B, Nina_ricci_9 sont masquées
Si je sélectionne DIOR alors les feuilles Chanel_F6, Guerlain_F1, Nina_ricci_9 sont masquées
Si je sélectionne NINA alors les feuilles Chanel_F6, Guerlain_F1, Dior_B sont masquées
Avec les noms des feuilles
Est-ce que l'on peut mettre aussi sheetveryhidden pour être tranquille ??
Merci d'avance
Cordialement
Re
Si les 4 feuilles commencent bien par des initiales différentes et se suivent tu peux essayer une macro du style de la suivante où les feuilles à traiter sont les 2°, 3°, 4° et 5° du classeur
Cdlmnt
Si les 4 feuilles commencent bien par des initiales différentes et se suivent tu peux essayer une macro du style de la suivante où les feuilles à traiter sont les 2°, 3°, 4° et 5° du classeur
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("B2")) Is Nothing And Target.Value <> "" Then For n = 2 To 5 'boucle de la 2eme feuille à la 5eme ' A ADAPTER 'compare 1ere lettre du nom de la feuille et 1ere lettre de la cible If Left(Sheets(n).Name, 1) = Left(Target.Value, 1) Then Sheets(n).Visible = True: Sheets(n).Activate Else Sheets(n).Visible = xlVeryHidden Next End If End Sub
Cdlmnt
Bonjour et merci, c est fait.
et pour terminer, dans la cellule E9, il y a une autre liste deroulante avec des valeurs 4, 6, 8 et 10
si je sélectionne 4 masquées les feuilles B, C, D ;
si je sélectionne 6 masquées les feuilles À C D
8 masquées À B D
10 masquées À B C
Je ne peux pas être plus claire avec les noms de feuille, désolée.
Juste pour moi, il n y a que la technique avec FOR pour masquer les feuilles, avec if, else et endwith y a t il un moyen ?
Cela pourrai plus tard me servir.
Avec les décalages horaires, je ne sais plus comment je vie.
Merci
et pour terminer, dans la cellule E9, il y a une autre liste deroulante avec des valeurs 4, 6, 8 et 10
si je sélectionne 4 masquées les feuilles B, C, D ;
si je sélectionne 6 masquées les feuilles À C D
8 masquées À B D
10 masquées À B C
Je ne peux pas être plus claire avec les noms de feuille, désolée.
Juste pour moi, il n y a que la technique avec FOR pour masquer les feuilles, avec if, else et endwith y a t il un moyen ?
Cela pourrai plus tard me servir.
Avec les décalages horaires, je ne sais plus comment je vie.
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re
S'il y a plusieurs cas sans correspondance entre le choix dans la liste et le nom des feuilles et/ou des feuilles qui ne se suivent pas tu peux employer la méthode Select case , exemple à adapter :
Cdlmnt
S'il y a plusieurs cas sans correspondance entre le choix dans la liste et le nom des feuilles et/ou des feuilles qui ne se suivent pas tu peux employer la méthode Select case , exemple à adapter :
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("E9")) Is Nothing And Target.Value <> "" Then Select Case Target.Value Case 4 Sheets("B").Visible = xlVeryHidden Sheets("C").Visible = xlVeryHidden Sheets("D").Visible = xlVeryHidden Sheets("A").Visible = True Sheets("A").Activate Case 6 Sheets("A").Visible = xlVeryHidden Sheets("C").Visible = xlVeryHidden Sheets("D").Visible = xlVeryHidden Sheets("B").Visible = True Sheets("B").Activate ' continuer ici avec les autres Case End Select End If End Sub
Cdlmnt