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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Private Sub Recherche_Client_Initialize()
 
    Zone_recherche.RowSource = "'Listing client'!B2:I100"
 
End Sub
ou encore:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.