OVH Cloud OVH Cloud

Aide sur les Listbox

3 réponses
Avatar
ginette.bailleul
Bonjour à tous

J'ai besoin d'aide sur la façon de remplir une listbox.

Enoncé du problème:

J'ai une base de données excel comme suit:


A
B
C

1
Marchandise
Type
Pays

2
VELO
FEMME
France

3
VELO
HOMME
France

4
VELO
FEMME
Allemagne

5
VELO
HOMME
Allemagne



Je souhaiterais remplir une première listbox avec les infos de la colonne C
avec une donnée supplémentaire "Tous"
Puis remplir unes seconde listbox avec les infos des cellules A2 à B5.
En fonction de la valeur sélectionnée dans la première listbox je remplirai
la seconde.
Exemple :
Si je sélectionne france j'aurais les infos des cellules A1 à B2
Si je sélectionne Allemagne j'aurais les infos des cellules A4 à B5
Si je selectionne Tous j'aurais les infos des cellules A2 à B5

Merci d'avance pour toute l'aide que vous pourrez m'apporter

JF

3 réponses

Avatar
ginette.bailleul
Je viens de me rendre compte que ma mise en page à été modifiée.
Je vous remet le texte en forme/

A B C
1 MARCHANDISE TYPE PAYS
2 VELO FEMME FRANCE
3 VELO HOMME FRANCE
4 VELO FEMME ALLEMAGNE
5 VELO HOMME ALLEMAGNE



Je souhaiterais remplir une première listbox avec les infos de la colonne C
avec une donnée supplémentaire "Tous"
Puis remplir unes seconde listbox avec les infos des cellules A2 à B5.
En fonction de la valeur sélectionnée dans la première listbox je remplirai
la seconde.
Exemple :
Si je sélectionne france j'aurais les infos des cellules A1 à B2
Si je sélectionne Allemagne j'aurais les infos des cellules A4 à B5
Si je selectionne Tous j'aurais les infos des cellules A2 à B5

Merci d'avance pour toute l'aide que vous pourrez m'apporter

JF
Avatar
JB
On 5 fév, 20:53, "ginette.bailleul"
wrote:
Je viens de me rendre compte que ma mise en page à été modifiée.
Je vous remet le texte en forme/

A B C
1 MARCHANDISE TYPE PAYS
2 VELO FEMME FRANCE
3 VELO HOMME FRANCE
4 VELO FEMME ALLEMAGNE
5 VELO HOMME ALLEMAGNE

Je souhaiterais remplir une première listbox avec les infos de la colon ne C
avec une donnée supplémentaire "Tous"
Puis remplir unes seconde listbox avec les infos des cellules A2 à B5.
En fonction de la valeur sélectionnée dans la première listbox je remplirai
la seconde.
Exemple :
Si je sélectionne france j'aurais les infos des cellules A1 à B2
Si je sélectionne Allemagne j'aurais les infos des cellules A4 à B5
Si je selectionne Tous j'aurais les infos des cellules A2 à B5

Merci d'avance pour toute l'aide que vous pourrez m'apporter

JF


Bonsoir,


Private Sub ComboBox1_Change()
i = 0
Me.ListBox1.Clear
For Each c In Range([A2], [A65000].End(xlUp))
If c.Offset(0, 2) = Me.ComboBox1 Or Me.ComboBox1 = "*" Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value
i = i + 1
End If
Next c
End Sub

Private Sub UserForm_Initialize()
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range([C2], [C65000].End(xlUp))
If Not mondico.Exists(c.Value) Then mondico.Add c.Value, c.Value
Next c
Me.ComboBox1.AddItem "*"
For Each i In mondico.items
Me.ComboBox1.AddItem i
Next
End Sub

http://cjoint.com/?cfvSeQsLbi


Cordialement JB

Avatar
ginette.bailleul
Merci beaucoup JB.
Pour la clarté de tes explications et leurs justesses.

Encore mercis

JF


"JB" a écrit dans le message de news:

On 5 fév, 20:53, "ginette.bailleul"
wrote:
Je viens de me rendre compte que ma mise en page à été modifiée.
Je vous remet le texte en forme/

A B C
1 MARCHANDISE TYPE PAYS
2 VELO FEMME FRANCE
3 VELO HOMME FRANCE
4 VELO FEMME ALLEMAGNE
5 VELO HOMME ALLEMAGNE

Je souhaiterais remplir une première listbox avec les infos de la colonne
C
avec une donnée supplémentaire "Tous"
Puis remplir unes seconde listbox avec les infos des cellules A2 à B5.
En fonction de la valeur sélectionnée dans la première listbox je
remplirai
la seconde.
Exemple :
Si je sélectionne france j'aurais les infos des cellules A1 à B2
Si je sélectionne Allemagne j'aurais les infos des cellules A4 à B5
Si je selectionne Tous j'aurais les infos des cellules A2 à B5

Merci d'avance pour toute l'aide que vous pourrez m'apporter

JF


Bonsoir,


Private Sub ComboBox1_Change()
i = 0
Me.ListBox1.Clear
For Each c In Range([A2], [A65000].End(xlUp))
If c.Offset(0, 2) = Me.ComboBox1 Or Me.ComboBox1 = "*" Then
Me.ListBox1.AddItem
Me.ListBox1.List(i, 0) = c.Value
Me.ListBox1.List(i, 1) = c.Offset(0, 1).Value
i = i + 1
End If
Next c
End Sub

Private Sub UserForm_Initialize()
Set mondico = CreateObject("Scripting.Dictionary")
For Each c In Range([C2], [C65000].End(xlUp))
If Not mondico.Exists(c.Value) Then mondico.Add c.Value, c.Value
Next c
Me.ComboBox1.AddItem "*"
For Each i In mondico.items
Me.ComboBox1.AddItem i
Next
End Sub

http://cjoint.com/?cfvSeQsLbi


Cordialement JB