Dim Liste()
Private Sub UserForm_Initialize()
'Microsoft ActiveX DataObject doit être coché
' Champ nommé BD
Set cnn = New ADODB.Connection
cnn.Open "DRIVER={Microsoft Excel Driver (*.xls)};ReadOnly=1;DBQ=" & _
ThisWorkbook.Path & "\" & "BDPROD.xls"
Set rs = cnn.Execute("SELECT libellé,Codification,Prix,Unité FROM BD where libellé<>''")
Me.ListBox1.Clear
i = 0
Do While Not rs.EOF
ListBox1.AddItem rs("libellé")
ListBox1.List(i, 1) = rs("codification")
ListBox1.List(i, 2) = rs("Prix")
ListBox1.List(i, 3) = rs("Unité")
i = i + 1
rs.MoveNext
Loop
rs.Close
cnn.Close
Set rs = Nothing
Set cnn = Nothing
Liste = Me.ListBox1.List
End Sub
Private Sub TextBox1_Change()
Me.ListBox1.Clear
j = 0
For i = LBound(Liste) To UBound(Liste)
If UCase(Liste(i, 0)) Like UCase(Me.TextBox1) & "*" Then
Me.ListBox1.AddItem Liste(i, 0)
Me.ListBox1.List(j, 1) = Liste(i, 1)
Me.ListBox1.List(j, 2) = Liste(i, 2)
Me.ListBox1.List(j, 3) = Liste(i, 3)
j = j + 1
End If
Next i
End Sub
Private Sub TextBox2_Change()
Me.ListBox1.Clear
j = 0
For i = LBound(Liste) To UBound(Liste)
If UCase(Liste(i, 0)) Like "*" & UCase(Me.TextBox2) & "*" Then
Me.ListBox1.AddItem Liste(i, 0)
Me.ListBox1.List(j, 1) = Liste(i, 1)
Me.ListBox1.List(j, 2) = Liste(i, 2)
Me.ListBox1.List(j, 3) = Liste(i, 3)
j = j + 1
End If