Afficher résultat dans combobox

Le
Denys
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4219871
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"
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


JB
Le #4219831
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"
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


Publicité
Poster une réponse
Anonyme