XL 2021 Macro qui permette d'afficher les feuilles à partir d'une liste déroulante

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 !

MCO2406

XLDnaute Nouveau
Bonjour,
Je souhaiterais faire apparaitre une feuille selon la sélection dans un menu déroulant. Les autres feuilles restant masquées.
Exemple:
Mon menu déroulant est en C2 et il va chercher les données dans une liste en colonne A de mon onglet "1_MENU".

La liste déroulante est :
AAA
AAAA
BB
BBBB
CC
CCC

Je souhaiterais que la feuille qui se nomme "CCC" s'affiche quand je selectionne "CCC" dans le menu déroulant en C2 de la feuille "1_MENU"

A force de tout tester et supprimer ma macro s'arrête désormais à :
Sub Macro1_TestMenuDeroulant_choixMag()
' Macro1_TestMenuDeroulant_choixMag Macro
Sheets("1_MENU").Select
Sheets("CCC").Visible = True
Sheets("1_MENU").Select
Sheets("AAA").Visible = True
End Sub

comment écrire la sélection en C2 dans le menu déroulant?
Je vous remercie
 

Pièces jointes

Bonjour MCO,
Un essai avec la macro événementielle :
VB:
Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Fin: If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, [C2]) Is Nothing Then
         Application.ScreenUpdating = False
         For Each F In Worksheets
            If F.Name <> "1_MENU" Then Sheets(F.Name).Visible = 2
        Next F
        On Error Resume Next
        Sheets(Target.Value).Visible = -1
        Sheets(Target.Value).Select
    End If
Fin:
Application.ScreenUpdating = True
End Sub
Il suffit de changer la valeur en C2 pour accéder à la feuille demandée.
( Si vous voulez que les feuilles restent accessibles via clic droit sur onglet et Afficher alors remplacer le paramètre 2 par 0 dans Sheets(F.Name).Visible )
 

Pièces jointes

Bonjour MCO2406
Personnellement, si j'ai compris ce que tu veux , je ferais ceci : mettre l'évènement change dans ta feuille 1_MENU ainsi :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Target.Address = "$C$2" Then
        Choix = Target
        Sheets(Choix).Activate
    End If
End Sub
Bonne soirée
 
- 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

Retour