Bonjour à tous,
Je travaille en ce moment sur une Macro en VBA et j'aimerais utiliser des listes de choix dépendantes les unes des autres.
Au départ, il faut savoir que les données source de mes listes se trouvent dans un tableau à 3 dimensions.
Pour l'instant, j'utilise un système un peu batard comme cela :
L'idée, c'est que je recopie les données de la ligne (0,x,1) de mon tableau dans une feuille (nommée BDD) et qu'ensuite, je créé la liste à partir des valeurs créées dans cette feuille.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 Sub Plage() For NbFamille = 1 To 30 If Tableau_OC(0, NbFamille, 1) <> "" Then Worksheets("BDD").Cells(NbFamille, 1).Value = Tableau_OC(0, NbFamille, 1) NbFMax = NbFamille End If Next NbFamille ActiveWorkbook.Names.Add Name:="Famille", RefersToR1C1:="=BDD!R1C1:R" & CStr(NbFMax) & "C1" Sheets("AffectationOC").Select Cells(1, 1).Select With Selection.Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=Famille" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With End Sub
Ma première question est donc de savoir si il est possible de remplir ma liste de choix directement à partir de mon tableau, et si oui, comment procéder.
J'ai vu dans l'aide de VBA et sur certains sites que l'on pouvait utiliser des instructions type :
Mais après, je sais pas comment lier les données de ListBox1 à ma cellule...
Code : Sélectionner tout - Visualiser dans une fenêtre à part ListBox1.AddItem Machin
Ensuite, la seconde difficulté que je rencontre est la liaison des listes entre elles. Je sais que je peux lier mes données par l'adressage de mon tableau, mais je ne sais pas comment détecter le changement d'état de la cellule "mère".
Je sais où aller chercher les données de la liste de la cellule "fille" en fonction de celles choisies dans la cellule "mère", mon problème est de savoir quand?
Y-a-t il donc un moyen simple de détecter un clic sur la cellule mère, ou alors un changement d'état???
Merci de vos réponses!
Partager