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
| Private Sub ListBox1_Click()
'"Me" représente ici l'userform
With Me.ListBox1
'Tout ce qui commence par "." se réfère à ce qui est mentionné avec "With"
'par exemple ".Value" signifie ici "Me.ListBox1.Value"
'la cellulle A1 de Feuil1 prend la valeur de celle du listbox
[Feuil1!A1].Value = .Value
'List représente l'ensemble des valeurs de la listbox
'List(0,0) représente la première ligne et première colonne de List
'List(0,1) représente la première ligne et deuxième colonne de List
'Listindex représente le numéro de ligne de la valeur dans "List"
[Feuil1!B1].Value = .List(.ListIndex, 1)
[Feuil1!C1].Value = .List(.ListIndex, 2)
Unload Me
End With
End Sub
Private Sub UserForm_Initialize()
Dim C As Range
With Sheets("Feuil2")
'"plage" définit la plage de cellules occupées à partir de A2 de Feuil2
Set plage = .Range(.[A2], .Cells(.Rows.Count, 1).End(xlUp))
End With
With Me.ListBox1
'on vide la listbox
.Clear
' définit 3 colonnes
.ColumnCount = 3
'elles font chacune 50 points de large
.ColumnWidths = "50;50;50"
'la valeur renvoyée lors d'un choix est la colonne 1
.BoundColumn = 1
'on boucle sur chaque cellule de "plage"
For Each C In plage
'si les 3 premières lettres correspondent à celles de A5, Feuil1
If Left(C.Value, 3) = Left([Feuil1!A5], 3) Then
'remplissage de la listbox
'ajout d'une ligne dans la listbox
.AddItem C.Value
'ajout de la cellule de la colonne B dans la listbox en colonne 2
.List(.ListCount - 1, 1) = C.Offset(, 1)
'ajout de la cellule de la colonne C dans la listbox en colonne 3
.List(.ListCount - 1, 2) = C.Offset(, 2)
End If
Next C
End With
End Sub |