Lier une liste déroulante à un tableau

Bonjour,

Je dispose de deux feuilles sur le fichier joint ci-après : Une avec des prédictions pour Janvier / Février, puis une avec un menu de listes déroulantes.

Est-il possible qu'en sélectionnant "Janvier" dans la liste déroulante, je fasse apparaître à côté le tableau correspondant à Janvier de la feuille précédente ? (et idem pour février bien sûr)

Merci à vous

Hello itachi sama,

A placer dans un module de feuille (Feuille de la liste déroulante) pour une liste déroulante en C1 & les valeur de la liste déroulante doivent être identiques à celles de la feuille data.

Option Compare Text
Private Sub Worksheet_Change(ByVal Target As Range)

Const name_sh_data As String = "24s"
Dim schoice_month As String
Dim col_first_month As Byte
Dim numb_week As Byte
Dim last_row As Long
Dim sh_data As Worksheet
Dim rg_ref As Range
Dim rg_month As Range

If Not Application.Intersect(Target, Range("C1")) Is Nothing Then 'Si la liste déroulante change
    schoice_month = Target.Value 'Recup valeur du mois
    col_first_month = 2 'Premiere colonne du mois de janvier
    numb_week = 6 'Nombre de semaine par mois
    Set sh_data = Sheets(name_sh_data) 'Def feuille data
    last_row = sh_data.Range("A1").CurrentRegion.Rows.Count 'Calcul nb ligne dans feuille data
    Set rg_ref = sh_data.Range("A1:A" & last_row) 'Recupere la plage des references
    rg_ref.Copy 'Copie
    Range("E1").PasteSpecial Paste:=xlPasteAll 'Colle
    Application.CutCopyMode = False
    j = col_first_month
    While sh_data.Cells(1, j) <> schoice_month 'Cherche le mois séléctionné dans la feuille data
    j = j + numb_week
    Wend
    Set rg_month = sh_data.Range(sh_data.Cells(1, j), sh_data.Cells(last_row, j + (numb_week - 1))) 'Defini la plage du mois trouvé
    rg_month.Copy 'Copie
    Range("F1").PasteSpecial Paste:=xlPasteAll 'Colle
    Application.CutCopyMode = False
    Set sh_data = Nothing
    Set rg_ref = Nothing
    Set rg_month = Nothing
End If

End Sub

Salut et merci de ta réponse tout d'abord,

J'ai essayé de coller la macro comme tu me l'as dit, mais lorsque je clique sur play pour essayer de la créer sous un nom, j'ai l'impression qu'une seconde macro vide se crée en dessous à chaque fois (même si je rajoute sub macro au début). J'essaye de te joindre ça par photo. C'est la première fois que j'utilise VBA je m'y connais pas du tout.

capture 2

Hello,

C'est pas une macro "classique" où tu dois créer un module.

La c'est un évènement d'une feuille excel, en l'occurrence un évènement change.

Private Sub Worksheet_Change(ByVal Target As Range)

Pour faire simple, lorsque tu change une valeur en C1 de ta feuille où tu as ta liste déroulante, la macro va se déclencher

Donc comment ajouter une macro à un évènement de feuille : https://www.excel-pratique.com/fr/vba/evenements_feuille

Rechercher des sujets similaires à "lier liste deroulante tableau"