Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Afficher résultat dans combobox

2 réponses
Avatar
Denys
Bonjour =E0 tous,

Je fais suite un peu =E0 mes questions d'hier. En colonne A, j'ai des
abbr=E9viations de cies. En colonne B, j'ai des num=E9ros correspondant
aux produits qui eux sont inscrits dans la colonne C.

Maintenant, gr=E2ce =E0 votre aide (JB surtout), si je choisis la cie DEF
dans mon combobox2, mon combobox2 affiche la liste des nos
correspondants.

J'aimerais maintenant qu'apr=E8s avoir choisi le num=E9ro dans le
combobox3, que le combobox4 aille chercher le nom du produit en
colonne C et l'affiche dans le combobox4. Jusqu'=E0 pr=E9sent, je n'ai
r=E9ussi qu'=E0 lui faire afficher la bonne liste.

Voici le code gentiment offert par JB:

Private Sub UserForm_Initialize() ' ne r=E9p=E8te que les abbr=E9viations
des cies une seule fois
TextBox1.Value =3D Date
Application.ScreenUpdating =3D False
Sheet1.Select
Set MonDico =3D CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
temp =3D MonDico.items
Me.ComboBox2.List =3D temp
Me.ComboBox2.ListIndex =3D 0
End Sub

Private Sub ComboBox2_Change() 'me donne la liste =E0 afficher dans le
combobox3
d =3D Application.Match(Me.ComboBox2, [abbrev], 0)
Me.ComboBox3.Clear
For i =3D d To d + Application.CountIf([abbrev], Me.ComboBox2) - 1
Me.ComboBox3.AddItem Range("fundno")(i)
Next i
End Sub

Private Sub ComboBox3_Change()'me donne la liste =E0 afficher dans le
combobox4
d =3D Application.Match(Me.ComboBox2, [abbrev], 0)
Me.ComboBox4.Clear
For i =3D d To d + Application.CountIf([abbrev], Me.ComboBox2) - 2
Me.ComboBox4.AddItem Range("fund")(i)
Next i
End Sub

Maintenant, il faudrait que le combobox4 affiche le r=E9sultat
imm=E9diatement apr=E8s avoir choisi le no de produit dans le combobox3.
Le nom du produit se retrouve dans la cellule =E0 c=F4t=E9 dans la colonne
C=2E

Merci pour votre temps

Denys

2 réponses

Avatar
JB
Bonsoir,

Ton combobox4 devrait être un textbox?

http://cjoint.com/?cBu3UoY0b6

Private Sub UserForm_Initialize() ' ne répète que les abbréviations
des cies une seule fois
TextBox1.Value = Date
Application.ScreenUpdating = False
Sheets(1).Select
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
temp = MonDico.items
Me.ComboBox2.List = temp
Me.ComboBox2.ListIndex = 0
End Sub

Private Sub ComboBox2_Change() 'me donne la liste à afficher dans le
ComboBox3
d = Application.Match(Me.ComboBox2, [abbrev], 0)
Me.ComboBox3.Clear
For i = d To d + Application.CountIf([abbrev], Me.ComboBox2) - 1
Me.ComboBox3.AddItem Range("fundno")(i)
Next i
Me.ComboBox3.ListIndex = 0
End Sub

Private Sub ComboBox3_Change() 'me donne la liste à afficher dans le
ComboBox4
If Me.ComboBox3.ListIndex <> -1 Then
p = Application.Match(Me.ComboBox3, [fundno], 0)
Me.ComboBox4.Clear
Me.ComboBox4.AddItem Range("fund")(p)
Me.ComboBox4.ListIndex = 0
End If
End Sub



JB



On 27 fév, 17:13, "Denys" wrote:
Bonjour à tous,

Je fais suite un peu à mes questions d'hier. En colonne A, j'ai des
abbréviations de cies. En colonne B, j'ai des numéros correspondant
aux produits qui eux sont inscrits dans la colonne C.

Maintenant, grâce à votre aide (JBsurtout), si je choisis la cie DEF
dans mon combobox2, mon combobox2 affiche la liste des nos
correspondants.

J'aimerais maintenant qu'après avoir choisi le numéro dans le
combobox3, que le combobox4 aille chercher le nom du produit en
colonne C et l'affiche dans le combobox4. Jusqu'à présent, je n'ai
réussi qu'à lui faire afficher la bonne liste.

Voici le code gentiment offert parJB:

Private Sub UserForm_Initialize() ' ne répète que les abbréviations
des cies une seule fois
TextBox1.Value = Date
Application.ScreenUpdating = False
Sheet1.Select
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
temp = MonDico.items
Me.ComboBox2.List = temp
Me.ComboBox2.ListIndex = 0
End Sub

Private Sub ComboBox2_Change() 'me donne la liste à afficher dans le
combobox3
d = Application.Match(Me.ComboBox2, [abbrev], 0)
Me.ComboBox3.Clear
For i = d To d + Application.CountIf([abbrev], Me.ComboBox2) - 1
Me.ComboBox3.AddItem Range("fundno")(i)
Next i
End Sub

Private Sub ComboBox3_Change()'me donne la liste à afficher dans le
combobox4
d = Application.Match(Me.ComboBox2, [abbrev], 0)
Me.ComboBox4.Clear
For i = d To d + Application.CountIf([abbrev], Me.ComboBox2) - 2
Me.ComboBox4.AddItem Range("fund")(i)
Next i
End Sub

Maintenant, il faudrait que le combobox4 affiche le résultat
immédiatement après avoir choisi le no de produit dans le combobox3.
Le nom du produit se retrouve dans la cellule à côté dans la colonne
C.

Merci pour votre temps

Denys


Avatar
JB
Autre solution:

http://cjoint.com/?cBvin1S5HZ

Private Sub UserForm_Initialize() ' ne répète que les abbréviations
des cies une seule fois
TextBox1.Value = Date
Application.ScreenUpdating = False
Sheets(1).Select
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
temp = MonDico.items
Me.ComboBox2.List = temp
Me.ComboBox2.ListIndex = 0
End Sub

Private Sub ComboBox2_Change() 'me donne la liste à afficher dans le
ComboBox3
d = Application.Match(Me.ComboBox2, [abbrev], 0)
Me.ListBox1.Clear
k = 0
For i = d To d + Application.CountIf([abbrev], Me.ComboBox2) - 1
Me.ListBox1.AddItem
Me.ListBox1.List(k, 0) = Range("fundno")(i)
Me.ListBox1.List(k, 1) = Range("fund")(i)
k = k + 1
Next i
Me.ListBox1.ListIndex = 0
End Sub

Private Sub ListBox1_Click()
Me.TextBox2 = Me.ListBox1.Column(1)
End Sub

JB

On 27 fév, 17:13, "Denys" wrote:
Bonjour à tous,

Je fais suite un peu à mes questions d'hier. En colonne A, j'ai des
abbréviations de cies. En colonne B, j'ai des numéros correspondant
aux produits qui eux sont inscrits dans la colonne C.

Maintenant, grâce à votre aide (JB surtout), si je choisis la cie DEF
dans mon combobox2, mon combobox2 affiche la liste des nos
correspondants.

J'aimerais maintenant qu'après avoir choisi le numéro dans le
combobox3, que le combobox4 aille chercher le nom du produit en
colonne C et l'affiche dans le combobox4. Jusqu'à présent, je n'ai
réussi qu'à lui faire afficher la bonne liste.

Voici le code gentiment offert par JB:

Private Sub UserForm_Initialize() ' ne répète que les abbréviations
des cies une seule fois
TextBox1.Value = Date
Application.ScreenUpdating = False
Sheet1.Select
Set MonDico = CreateObject("Scripting.Dictionary")
For Each c In Range([A2], [A65000].End(xlUp))
If Not MonDico.Exists(c.Value) Then MonDico.Add c.Value, c.Value
Next c
temp = MonDico.items
Me.ComboBox2.List = temp
Me.ComboBox2.ListIndex = 0
End Sub

Private Sub ComboBox2_Change() 'me donne la liste à afficher dans le
combobox3
d = Application.Match(Me.ComboBox2, [abbrev], 0)
Me.ComboBox3.Clear
For i = d To d + Application.CountIf([abbrev], Me.ComboBox2) - 1
Me.ComboBox3.AddItem Range("fundno")(i)
Next i
End Sub

Private Sub ComboBox3_Change()'me donne la liste à afficher dans le
combobox4
d = Application.Match(Me.ComboBox2, [abbrev], 0)
Me.ComboBox4.Clear
For i = d To d + Application.CountIf([abbrev], Me.ComboBox2) - 2
Me.ComboBox4.AddItem Range("fund")(i)
Next i
End Sub

Maintenant, il faudrait que le combobox4 affiche le résultat
immédiatement après avoir choisi le no de produit dans le combobox3.
Le nom du produit se retrouve dans la cellule à côté dans la colonne
C.

Merci pour votre temps

Denys