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 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
'au niveau module pour être utilisé par les différentes proc de la Form
Dim TblVilles() As String
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim I As Long
'la plage se trouve en colonne A à partire de A2 (A1 = entête) de la feuille nommée "Villes" (<- adapter)
With Worksheets("Villes")
Set Plage = .Range(.Cells(2, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
'dimensionne le tableau à la plage
ReDim TblVilles(1 To Plage.Count)
'rempli le tableau
For I = 1 To Plage.Count
TblVilles(I) = Plage(I)
Next I
End Sub
Private Sub TextBox1_Change()
Dim I As Long
'vide la liste à chaque fois
ListBox1.Clear
'si le textbox n'est pas vide
If TextBox1.Text <> "" Then
'boucle sur le tableau et recherche la correspondance
For I = 1 To UBound(TblVilles)
If UCase(Left(TblVilles(I), Len(TextBox1.Text))) = UCase(TextBox1.Text) Then
'si trouvé, rempli la listbox
ListBox1.AddItem TblVilles(I)
End If
Next I
End If
End Sub
Private Sub ListBox1_Click()
'pour récupérer le choix dans la liste
MsgBox ListBox1.Text
End Sub |
Partager