Masquer onglet selon une valeur en VBA
Fermé
cococorine
Messages postés
2
Date d'inscription
samedi 8 septembre 2018
Statut
Membre
Dernière intervention
8 septembre 2018
-
8 sept. 2018 à 16:43
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 - 9 sept. 2018 à 12:59
via55 Messages postés 14501 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 28 novembre 2024 - 9 sept. 2018 à 12:59
A voir également:
- Xlveryhidden
- Rouvrir onglet fermé - Guide
- Masquer une conversation whatsapp - Guide
- Appeler en masqué - Guide
- Comment masquer les amis sur facebook - Guide
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
5 réponses
via55
Messages postés
14501
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 novembre 2024
2 735
8 sept. 2018 à 18:40
8 sept. 2018 à 18:40
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
cococorine
Messages postés
2
Date d'inscription
samedi 8 septembre 2018
Statut
Membre
Dernière intervention
8 septembre 2018
8 sept. 2018 à 21:50
8 sept. 2018 à 21:50
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
via55
Messages postés
14501
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 novembre 2024
2 735
Modifié le 9 sept. 2018 à 02:10
Modifié le 9 sept. 2018 à 02:10
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
via55
Messages postés
14501
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
28 novembre 2024
2 735
9 sept. 2018 à 12:59
9 sept. 2018 à 12:59
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