Alimenter ListBox en fonction d'un ComboBox

Bonjour le forum

J'ouvre ce poste en complément d'un autre poste. Voilà mon dilemme :

Dans mon UserForm j'ai un ComboBox1 qui apparaît (dans le cas où "Modification" est sélectionné) au dessus de mon ListBox2.

Les choix disponibles dans le ComboBox1 vienne de la première ligne de la Feuil2(Pizzas). Les choix sont des noms de pizzas et en dessous de ses noms se trouve la liste des ingrédients.

L'idée serait d'afficher la liste des ingrédients qui composent la pizza sélectionné !

Le nom des pizzas et leur compositions sont stockée de gauche à droite sur la feuille

Voilà comment j'essaye de procéder :

  • -> Via la fonction "Find" je récupère le numéro de la colonne dans laquelle se trouve mon critère (critère = Combobox1)
  • -> Après vient le moment d’écrire la formule, et là, ça marche pas ! Le code ne plante pas mais me retourne que des cellules vide dans mon ListBox2 :
Private Sub ComboBox1_Change()
Dim J As Long

Set num = Feuil2.Range("A1:IV1").Find(ComboBox1.Value, , xlValues, xlWhole, , , False)
MsgBox num.Column

For J = 1 To Feuil2.Cells(num.Column & Rows.Count).End(xlUp).Row
Me.ListBox2.AddItem Feuil2.Cells(num.Column & J)
Next J

End Sub
170pizza.xlsm (83.13 Ko)

Bonjour,

la syntaxe pour adresser une cellule est

cells(ligne,colonne)

essaie ceci

Private Sub ComboBox1_Change()
    Dim J As Long

    Set num = Feuil2.Range("A1:IV1").Find(ComboBox1.Value, , xlValues, xlWhole, , , False)
    MsgBox num.Column

    For J = 2 To Feuil2.Cells(Rows.Count, num.Column).End(xlUp).Row
        Me.ListBox2.AddItem Feuil2.Cells(J, num.Column)
    Next J

End Sub

Bonjour

a toi de voir

Private Sub ComboBox1_Change()
Dim L&, Col&
 Col = Application.Match(ComboBox1, Feuil2.Rows(1), 0)
    ListBox2.Clear
    For L = 2 To Feuil2.Cells(Rows.Count, Col).End(xlUp).Row
        ListBox2.AddItem Feuil2.Cells(L, Col)
    Next
End Sub

A+

Maurice

Effectivement là j'affiche bien les valeurs dans le listbox2 mais le toute petit problème qu'il reste à résoudre est : pourquoi il y a aussi pleins de cellule vide en dessous ??

Bonjour,

supprime la ligne 1544 dans ta feuille pizzas

Je suis impressionné, c'était ça Comment savais-tu qu'il fallait faire ça ????

Bonjour

delette toutes tes lignes en dessous de ta liste

car tu a des des truc hi

A+

Maurice

Je suis impressionné, c'était ça Comment savais-tu qu'il fallait faire ça ????

bonjour,

la fonction déterminant la dernière ligne indiquait cette ligne, mais je n'ai pas compris pourquoi (une corruption du fichier ?)

Okey bien vu l'aveugle Je clôture ce poste d coup encore merci !

Bonne fêtes de fin d'année !

Bonjour

une autre solution peux être plus facile

Private Sub ComboBox1_Change()
Dim L&, Col&
 Col = Application.Match(ComboBox1, Feuil2.Rows(1), 0)
    ListBox2.Clear
    For L = 2 To Feuil2.Cells(2, Col).End(xlDown).Row    ' Cells(Rows.Count, Col).End(xlUp).Row
        ListBox2.AddItem Feuil2.Cells(L, Col)
    Next
End Sub

A+

Maurice

Rechercher des sujets similaires à "alimenter listbox fonction combobox"