Afficher une feuille selon une valeur d'une liste déroulante

Bonjour tout le monde,

J'aurais besoin de votre aide pour une macro. Bon je vous explique mon petit problème, j'ai une liste déroulante qui contient tous les mois de l'année dans un onglet et je voudrais que dépendant du mois sélectionné l'onglet qui porte le nom du mois s'affiche.

Pour l'instant mon code est

Sub month()

Dim month As Integer
month = Range("C14")

    Select Case month
        Case Is = "January"
            Sheets("January").Visible = True
        Case Is = "February"
            Sheets("February").Visible = True
        Case Is = "March"
            Sheets("March").Visible = True
        Case Is = "April"
            Sheets("April").Visible = True
        Case Is = "May"
            Sheets("May").Visible = True
        Case Is = "June"
            Sheets("June").Visible = True
        Case Is = "July"
            Sheets("July").Visible = True
        Case Is = "August"
            Sheets("August").Visible = True
        Case Is = "September"
            Sheets("September").Visible = True
        Case Is = "October"
            Sheets("October").Visible = True
        Case Is = "November"
            Sheets("November").Visible = True
        Case Is = "December"
            Sheets("December").Visible = True
    End Select

End Sub

Je vous joins le fichier

219macro-mois.xlsx (15.53 Ko)

Merci de votre aide à l'avance

Hello,

cf fichier joint

Bouben

535macro-mois.xlsm (26.11 Ko)

Merci beaucoup c'est très apprécié!

Par contre, j'ai simplement une petite précision j'ai un onglet Instructions et un Sommaire qui doivent rester visible est-ce cela est possible si oui comment pourrais-je procéder ?

J'ai réussi en ajoutant des And, mais je ne suis pas certain si à long terme cela va marcher!

Voici le code à présent

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim oSh As Worksheet

    If Target.AddressLocal = "$C$11" Then
        For Each oSh In Worksheets
            If oSh.Name <> "Month" And oSh.Name <> "Instructions" And oSh.Name <> "Sommaire" Then
                If oSh.Visible = xlSheetVisible Then
                    oSh.Visible = xlSheetHidden
                End If
            End If
        Next oSh
        Set oSh = Worksheets(Target.Value)
        oSh.Visible = xlSheetVisible
        oSh.Select
        Set oSh = Nothing
    End If

End Sub

Voici le fichier joint avec les onglets Instructions et Sommaire

290macro-mois-2.xlsm (26.04 Ko)

Merci à l'avance de votre aide

Bonsoir,

La modification est bonne, il n'y a pas de problème. J'aurai fait la même chose.

Bouben

Bonjour

Bonjour bouben

@ Volks

Ta macro initiale aurait pu marcher à condition :

  • De la placer dans la feuille VBA « Month » en tant que macro événementielle attachée au changement de la cellule C11
  • De donner à ta variable un autre nom que ‘’Month’’ qui est réservé par VBA à une fonction. Tu pourrais choisir ''Mois''
  • De déclarer cette variable comme variant et non comme integer : elle contiendra du texte et non un entier

Bye !

clore un sujet
274macro-mois-v1.xlsm (30.50 Ko)
Rechercher des sujets similaires à "afficher feuille valeur liste deroulante"