Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Remplir des listbox suite à un combobox

L

Luc

Guest
Bonsoir le forum,

Lorsque je sélection un nom dans un combobox, j'aimerais que les données correspondantes (cellules B à F) apparaissent dans mes listbox.

Quelqu'un pourrait m'aider ?

Merci
 

gex1403

XLDnaute Occasionnel
Salut Luc, adaptes ce code a ton fichier

WS etant le nom de ta feuille ou tu veux recuperer les données

Private Sub ComboBox1_Click()
If Me.ComboBox1.ListIndex = -1 Then Exit Sub 'ON sort si pas de sélection

TextBox1 = WS.Range('B' & Me.ComboBox1.ListIndex + 2) 'On alimente les données correspondant à la ligne
TextBox2.Value = WS.Range('c' & Me.ComboBox1.ListIndex + 2) 'On alimente les données correspondant à la ligne
TextBox3.Value = WS.Range('d' & Me.ComboBox1.ListIndex + 2)
TextBox4.Value = WS.Range('e' & Me.ComboBox1.ListIndex + 2)
TextBox5.Value = WS.Range('f' & Me.ComboBox1.ListIndex + 2)

With Me

End With
End Sub

@micalement
 
F

François

Guest
Bonjour gex1403,

Je cherche une solution tel que tu as donné à Luc. J'ai modifié des lignes pour que le tout fonctionne pour moi sans succès. Mes données se trouvent en D, E, etc.

Est-ce tu pourrais regarder cela et faire les corrections. Merci beaucoup.

Private Sub ComboBox3_Change()
Dim tabtemp As Variant
Dim O As Integer

With Worksheets('Inventaire')
O = .Range('a15000').End(xlUp).Row
tabtemp = .Range('A2:ae' & O).Value

For O = 1 To UBound(tabtemp, 1)
If tabtemp(O, 1) = CStr(Me.ComboBox1.Value) And tabtemp(O, 2) = CStr(Me.ComboBox2.Value) _
And tabtemp(O, 3) = CStr(Me.ComboBox3.Value) Then

ListBox1 = .Range('d' & Me.ComboBox3.Value + 2)
ListBox2.Value = .Range('e' & Me.ComboBox3.ListIndex + 4)
ListBox3.Value = .Range('f' & Me.ComboBox3.ListIndex + 4)
ListBox4.Value = .Range('g' & Me.ComboBox3.ListIndex + 4)
ListBox5.Value = .Range('h' & Me.ComboBox3.ListIndex + 4)
ListBox6.Value = .Range('i' & Me.ComboBox3.ListIndex + 4)
ListBox7.Value = .Range('j' & Me.ComboBox3.ListIndex + 4)
ListBox8.Value = .Range('k' & Me.ComboBox3.ListIndex + 4)

With Me

End With
End If

Next O
End With

End Sub
 
G

gex1403

Guest
Salut le forum, francois, luc
Francois envois ton fichier exemple sur le fil, pour l'instant je ne peux pas , je sort, mais je regardes ton fichier ce soir et je te reponds

@micalement
 
G

GSXR282005

Guest
Salut Francois, j'ai modifié ton fichier , remplacé ton userform par un autre, voir le code pour finaliser sur les colonnes que tu veux.J'ai supprimé la feuil1, pour reduire le fichier a moins de 50 ko

@micalement [file name=Test_20060416211927.zip size=40137]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Test_20060416211927.zip[/file]
 

Pièces jointes

  • Test_20060416211927.zip
    39.2 KB · Affichages: 112
F

François (le débutant)

Guest
Bonjour gex1403, Luc, le forum,

J'ai regardé ton code mais j'ai un problème car je fonctionne avec 3 combobox.

Donc avec ces lignes :
Private Sub UserForm_Activate()
Me.ComboBox1.SetFocus
End Sub

J'essaie avec :
Private Sub UserForm_Activate()
Me.ComboBox2.SetFocus
End Sub
Private Sub UserForm_Activate()
Me.ComboBox3.SetFocus
End Sub

pour trouver la ligne de référence pour toutes les données en D,E,F,G,H,I,J,AG.

Comment faire avec mes 3 combobox ?

Merci beaucoup de ta patience.
 

gex1403

XLDnaute Occasionnel
Salut francois,
Je travaille sur ton problème, ca avance pas mal, par contre un problème va se poser, ton fichier grossit et je ne pourrai pas le poster sur le forum.
Une adresse mail ne serait pas de refus

@micalement
 
F

François

Guest
Bonsoir gex1403, Luc, le forum,

Le but de mes 3 combobox est que ma base de données comprend plus de 5000 lignes. Donc en ayant des combobox discriminatoires (une seule occurence (pas de doublons)) me permets de sélectionner plus rapidement la donnée recherchée.

Merci beaucoup pour ton aide
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…