Dim f, bd, choix1()
Private Sub UserForm_Initialize()
Set f = Sheets("bd")
choix1 = f.Range("a2:C" & f.[A65000].End(xlUp).Row).Value
For i = 1 To UBound(choix1): choix1(i, 3) = i: Next i
bd = f.Range("a2:H" & f.[h65000].End(xlUp).Row).Value
Me.ComboBox1.List = choix1
End Sub
Private Sub ComboBox1_Change()
If Me.ComboBox1.ListIndex = -1 And IsError(Application.Match(Me.ComboBox1, Application.Index(choix1, , 1), 0)) Then
Dim b()
clé = UCase(Me.ComboBox1) & "*"
n = 0
For i = LBound(choix1) To UBound(choix1)
If UCase(choix1(i, 1)) Like clé Or UCase(choix1(i, 2)) Like clé Then
n = n + 1: ReDim Preserve b(1 To 3, 1 To n)
b(1, n) = choix1(i, 1): b(2, n) = choix1(i, 2): b(3, n) = i
End If
Next i
If n > 0 Then
ReDim Preserve b(1 To 3, 1 To n + 1)
Me.ComboBox1.List = Application.Transpose(b)
Me.ComboBox1.RemoveItem n
End If
Me.ComboBox1.DropDown
Else
ligne = Me.ComboBox1.Column(2)
For k = 1 To 8
Me("textbox" & k) = bd(ligne, k)
Next k
End If
End Sub