Problème de remplissage de combobox
Bonsoir à tous,
Je me permet de venir demander un petit coup de main. Bien que je sois débutant en vba (je suis en mode auto-apprentissage grâce au net), je me suis lancé dans la création d'un fichier excel de facturation pour mon entreprise.
Ce fichier comprend une feuille pour faire les factures, une feuille de listing des clients, une feuille de listing des factures et une feuille de détails de facture, le tout me permettant de garder une trace de chaque facture (je préfère décrire le projet on ne sait jamais ;)).
Pour pouvoir rechercher et insérer les coordonnées du client sur la facture, après plusieurs essais partant dans différentes directions mais aucun n'aboutissant à un résultat utilisable, j'ai trouvé un code sur http://boisgontierjacques.free.fr/pa...s2colonnes.htm qui pouvait tout à fait convenir.
J'ai changer les infos pour indiquer les bonnes feuilles, combobox et textbox mais je n'ai aucune liste qui apparaît dans la combobox.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Dim f, choix(), Rng, Ncol
Private Sub Recherche_Client_Initialize()
Set f = Sheets("Listing clients")
Set Rng = f.Range("B2:I" & f.[a65000].End(xlUp).Row)
TblTmp = Rng.Value
Ncol = Rng.Columns.Count
For i = LBound(TblTmp) To UBound(TblTmp)
ReDim Preserve choix(1 To i)
For k = LBound(TblTmp) To UBound(TblTmp, 2)
choix(i) = choix(i) & TblTmp(i, k) & " * "
Next k
Next i
Me.Zone_recherche.List = Rng.Value
End Sub
Private Sub Zone_recherche_Change()
If Me.Zone_recherche <> "" Then
If Me.Zone_recherche.ListIndex = -1 Then
mots = Split(Trim(Me.Zone_recherche), " ")
Tbl = choix
For i = LBound(mots) To UBound(mots)
Tbl = Filter(Tbl, mots(i), True, vbTextCompare)
Next i
n = 0: Dim b()
For i = LBound(Tbl) To UBound(Tbl)
a = Split(Tbl(i), "*")
n = n + 1: ReDim Preserve b(1 To Ncol, 1 To n)
For k = 1 To Ncol
b(k, i + 1) = a(k - 1)
Next k
Next i
If n > 0 Then
ReDim Preserve b(1 To Ncol, 1 To n + 1)
Me.Zone_recherche.List = Application.Transpose(b)
Me.Zone_recherche.RemoveItem n
End If
Me.Zone_recherche.DropDown
Else
For k = 0 To Ncol - 1
Me("textBox" & k + 2) = Me.Zone_recherche.Column(k)
Next k
End If
End If
End Sub |
Pour tester j'ai simplifier, simplifier et simplifier pour voir si j'arrivais a faire apparaître les données de mes clients dans la combobox.
Si je mets le range 'Listing client'!B2:I100 dans le champ RowSource de la fenêtre Propriétés de ma combobox, les infos apparaissent.
Si je mets:
Code:
1 2 3 4 5
| Private Sub Recherche_Client_Initialize()
Zone_recherche.RowSource = "'Listing client'!B2:I100"
End Sub |
ou encore:
Code:
1 2 3 4 5
| Private Sub Recherche_Client_Initialize()
Zone_recherche.List() = Sheets("Listing clients").Range("B2:I100").Value
End Sub |
Rien n’apparaît. Et je ne comprends pas pourquoi.
J'ai remplis les champs ColumnCount et ColumnWidths de base mais même en les vidant rien ne change.
Voila, si l'un de vous pouvais m’aiguiller, ça serait vraiment génial.