Créer une liste déroulante sur VA Excel
Nana
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
Je voudrais créer une liste déroulante pour l'intégrer à une macro.
Aussi, si je choisis un critère 1 dans une colonne, je voudrais que la colonne suivante j'ai la liste de critère 2 correspondant à mon critère 1 conformément à la base de données qui se trouve sur une autre feuille et de même que dans ma troisième colonne, on me propose une liste de critère 3.
sachant que je veux que ma liste de choix se réduise dans les différentes listes que je choisisse le critère 1, 2 ou 3.
je suis une grde débutante pour les macros... Quelqu'un pourrait m'aider?? Quelles solutions sont possibles?
MErci d'avance
Je voudrais créer une liste déroulante pour l'intégrer à une macro.
Aussi, si je choisis un critère 1 dans une colonne, je voudrais que la colonne suivante j'ai la liste de critère 2 correspondant à mon critère 1 conformément à la base de données qui se trouve sur une autre feuille et de même que dans ma troisième colonne, on me propose une liste de critère 3.
sachant que je veux que ma liste de choix se réduise dans les différentes listes que je choisisse le critère 1, 2 ou 3.
je suis une grde débutante pour les macros... Quelqu'un pourrait m'aider?? Quelles solutions sont possibles?
MErci d'avance
A voir également:
- Créer une liste déroulante sur VA Excel
- Liste déroulante excel - Guide
- Excel liste déroulante en cascade - Guide
- Comment créer un groupe whatsapp - Guide
- Créer un compte google - Guide
- Créer un lien pour partager des photos - Guide
13 réponses
Bonjour,
Fais ensorte que ta première liste soit alimentée.
tu crées ta liste déroulante. Comme il en existe deux sortes, tu fais propriété (si quand tu fais un cliques droit tu n'as pas propriété, tu fais affichage ou edition, barre d'outils, controles de formulaires ou controles activex, et tu cliques sur le bouton qui a une règle, équerre et un crayon, quand tu mets ta souris, ca te mets mode création et il faut que tu sois en mode création)
Regarde le nom de liste déroulante (name) : c soit listbox1 soit combobox1.
Tu peux les renommer.
Tu fermes les propriétés et tu fais recliques droit et visualiser le code.
La tu tapes :
Sub listbox1_Click()
'listbox1 = le nom de ta listbox
'si c'est combobox1 tu remplaces lisbox apr combobox
if listbox1.value = 1 then
ListBox2.Clear
ListBox2.AddItem "élément liste2 n°1" 'listbox2 étant ta deuxième liste déroulante.
listbox2.additem "élément liste2 n°2 " 'tu fais listbox2.additem autant que tu as d'éléments
end sub
Je sais que comme ca ca n'a pas l'air simple. Mais si tu veux, demain, je te mettrais un fichier en ligne qui te le montreras si tu n'as pas compris.
Fais ensorte que ta première liste soit alimentée.
tu crées ta liste déroulante. Comme il en existe deux sortes, tu fais propriété (si quand tu fais un cliques droit tu n'as pas propriété, tu fais affichage ou edition, barre d'outils, controles de formulaires ou controles activex, et tu cliques sur le bouton qui a une règle, équerre et un crayon, quand tu mets ta souris, ca te mets mode création et il faut que tu sois en mode création)
Regarde le nom de liste déroulante (name) : c soit listbox1 soit combobox1.
Tu peux les renommer.
Tu fermes les propriétés et tu fais recliques droit et visualiser le code.
La tu tapes :
Sub listbox1_Click()
'listbox1 = le nom de ta listbox
'si c'est combobox1 tu remplaces lisbox apr combobox
if listbox1.value = 1 then
ListBox2.Clear
ListBox2.AddItem "élément liste2 n°1" 'listbox2 étant ta deuxième liste déroulante.
listbox2.additem "élément liste2 n°2 " 'tu fais listbox2.additem autant que tu as d'éléments
end sub
Je sais que comme ca ca n'a pas l'air simple. Mais si tu veux, demain, je te mettrais un fichier en ligne qui te le montreras si tu n'as pas compris.
Merci pour ta réponse, dsl de répondre tardivement ms submergée de taff; je n'ai pas tout compris ms je vais essayer...
Ya pas un moyen de charger les différentes solutions directement au lieu de les écrire dans le code items par items.. et autres question, si je commence ponfiltre dans la liste 3 estce que les autres listes sont filtrées automatiquement par la suite.
Je veux bien que tu m'envoie un fichier d'exemple.
Merci
Ya pas un moyen de charger les différentes solutions directement au lieu de les écrire dans le code items par items.. et autres question, si je commence ponfiltre dans la liste 3 estce que les autres listes sont filtrées automatiquement par la suite.
Je veux bien que tu m'envoie un fichier d'exemple.
Merci
Bonjour,
je t'ai fait deux fichiers.
Le premier est en ajoutent des items :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijtLvU57z.xls
le second est via une liste :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijX0LM94N.xls
Dans les deux cas, le code se trouve :
Outils/Macro, visual basic editor.
A gauche, clique sur feuille1.
Si tu as des questions!!
je t'ai fait deux fichiers.
Le premier est en ajoutent des items :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijtLvU57z.xls
le second est via une liste :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijX0LM94N.xls
Dans les deux cas, le code se trouve :
Outils/Macro, visual basic editor.
A gauche, clique sur feuille1.
Si tu as des questions!!
Merci de ta réponse.
j'avais en tête ce code mais en fait je devrais si j'ai compris écrire toutes les valeurs/items de mes listes déroulantes qui sont très nombreuses. Y-a-til un moyen de charger automatiquement les valeurs d'une liste déroulante dans le code sans écrire une ligne par valeur ac AddItems ?
J'espère être plus ou moins claire.
Merci d'avance.
j'avais en tête ce code mais en fait je devrais si j'ai compris écrire toutes les valeurs/items de mes listes déroulantes qui sont très nombreuses. Y-a-til un moyen de charger automatiquement les valeurs d'une liste déroulante dans le code sans écrire une ligne par valeur ac AddItems ?
J'espère être plus ou moins claire.
Merci d'avance.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
C'est ce que j'ai mis dans le second fichier :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijX0LM94N.xls
C'est ce que j'ai mis dans le second fichier :
http://www.cijoint.fr/cjlink.php?file=cj200909/cijX0LM94N.xls
La je suis larguée...
Je voudrais charger une vingtaine de valeurs pour alimenter ma liste box d'après une petite base. Je crois que c'est une fonction RowSource.
Et après comme j'avais dit, que la liste déroulante 2 n'affiche que lesles valeurs qui correspondantes à la sélection de la liste déroulante 2, sans pour autant écrire tous les items car les choix peuvent être importants a chaque fois et mon code sera imbuvable.
S 'il vs plait renvoyez mois un fichier ac le code ou m'écrire étape par étape en commençant par la création simple d'une listbox ou combobox. Je n'y connais vraiment rien...
MeRRRRCCIII MILLLE FOIIIISSSS
Je voudrais charger une vingtaine de valeurs pour alimenter ma liste box d'après une petite base. Je crois que c'est une fonction RowSource.
Et après comme j'avais dit, que la liste déroulante 2 n'affiche que lesles valeurs qui correspondantes à la sélection de la liste déroulante 2, sans pour autant écrire tous les items car les choix peuvent être importants a chaque fois et mon code sera imbuvable.
S 'il vs plait renvoyez mois un fichier ac le code ou m'écrire étape par étape en commençant par la création simple d'une listbox ou combobox. Je n'y connais vraiment rien...
MeRRRRCCIII MILLLE FOIIIISSSS
Bonjour,
Il manque des infos pour que l'on puisse te répondre.
Où sont tes listboxes ou comboboxes ? sur une feuille, sur une UserForm ?
Où sont les items à charger ?
Quels sont les critères de sélection pour ta 2ème liste déroulante ? Où sont les items pour l'alimenter ?
etc ...
;o)
Il manque des infos pour que l'on puisse te répondre.
Où sont tes listboxes ou comboboxes ? sur une feuille, sur une UserForm ?
Où sont les items à charger ?
Quels sont les critères de sélection pour ta 2ème liste déroulante ? Où sont les items pour l'alimenter ?
etc ...
;o)
Ma combobox est dans un Userform!!!
C bon grâce à la propriété du combobox "RowSource" j'ai pu charger mes items, qui se trouve sur une feuille excel dans une 1ere liste déroulante. Pour critère 1 il y a 10 choix possibles de critères 2 puis qd tu choisi ton critère 2, il ya encore 5 choix possible de critères 3 etc.. je veux qu'au fur et a mesure de mes sélection mes liste de choix suivantes diminuent en fonction du critères précédentes.
G une base de donnée de 600 ligne qui reprend toutes les combinaisons possibles.
J'espere que c'est plus clair. Merci d'avance
C bon grâce à la propriété du combobox "RowSource" j'ai pu charger mes items, qui se trouve sur une feuille excel dans une 1ere liste déroulante. Pour critère 1 il y a 10 choix possibles de critères 2 puis qd tu choisi ton critère 2, il ya encore 5 choix possible de critères 3 etc.. je veux qu'au fur et a mesure de mes sélection mes liste de choix suivantes diminuent en fonction du critères précédentes.
G une base de donnée de 600 ligne qui reprend toutes les combinaisons possibles.
J'espere que c'est plus clair. Merci d'avance
Ok,
Je vais donc admettre qu'en "A1:A7" du premier onglet tu as les items du combox1, par exemple :
B
J
M
N
R
T
V
Et que dans la colonne B du premier onglet tu as les items potentiels de la combox2, par exemple :
Rouge
Bleu
Marron
Vert
Noir
Blanc
Jaune
Violet
Rose
Turquoise
On veut que s'affiche dans la combobox2, tous les items ayant la même initiale que celle sélectionnée dans la combobox1, par exemple :
Si V dans la combobox1 alors Vert et Violet dans la combobox2.
On va donc faire ça :
Voilà, à toi d'adapter ça.
Bon courage
;o)
Je vais donc admettre qu'en "A1:A7" du premier onglet tu as les items du combox1, par exemple :
B
J
M
N
R
T
V
Et que dans la colonne B du premier onglet tu as les items potentiels de la combox2, par exemple :
Rouge
Bleu
Marron
Vert
Noir
Blanc
Jaune
Violet
Rose
Turquoise
On veut que s'affiche dans la combobox2, tous les items ayant la même initiale que celle sélectionnée dans la combobox1, par exemple :
Si V dans la combobox1 alors Vert et Violet dans la combobox2.
On va donc faire ça :
Private Sub UserForm_Initialize() 'J'initialise la combo1 à l'ouverture de l'UF.
Sheets(1).Activate
ComboBox1.RowSource = "A1:A7"
End Sub
'A chaque changement de selection de la combo1
Private Sub ComboBox1_Change()
Dim lig As Long
ComboBox2.Clear 'J'efface le contenu de la combo2
lig = 1 'pour commencer à la première ligne à tester
'Je parcours la colonne B tant qu'une ligne est renseignée
While Sheets(1).Range("B" & lig).Value <> ""
'Si l'initiale est égale à la valeur de la combo1
If Mid(Sheets(1).Range("B" & lig).Value, 1, 1) = ComboBox1.Text Then
'Je remplis la combo2
ComboBox2.AddItem Range("B" & lig).Value
End If
lig = lig + 1 'je passe à la ligne suivante
Wend
End Sub
Voilà, à toi d'adapter ça.
Bon courage
;o)