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 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
|
Dim Tbl() As Integer
Private Sub TextBox1_Change()
Dim Plage As Range
Dim I As Integer
Dim J As Integer
With ActiveSheet
'sur la feuille active en colonne A à partir de la 14 ème ligne
Set Plage = .Range(.Cells(14, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
'par défaut, vide la liste si une lettre n'est pas trouvée
ListBox1.Clear
For I = 1 To Plage.Count
'recherche la correspondance et rempli la liste
If Left(Plage(I), Len(TextBox1.Text)) = TextBox1.Text Then
J = J + 1
ReDim Preserve Tbl(1 To J)
Tbl(J) = I
With ListBox1
.AddItem Plage(I).Value
.Column(1, J - 1) = Plage(I).Offset(, 1).Value
.Column(2, J - 1) = Plage(I).Offset(, 2).Value
End With
End If
Next I
End Sub
Private Sub UserForm_Initialize()
Dim Plage As Range
Dim I As Integer
With ActiveSheet
'sur la feuille active en colonne A à partir de la 14 ème ligne
Set Plage = .Range(.Cells(14, 1), .Cells(.Rows.Count, 1).End(xlUp))
End With
With ListBox1
'3colonnes
.ColumnCount = 3
.ColumnWidths = "100;100;100"
.ListStyle = fmListStyleOption
.MultiSelect = fmMultiSelectMulti
'rempli la liste
For I = 1 To Plage.Count
.AddItem Plage(I).Value
.Column(1, I - 1) = Plage(I).Offset(, 1).Value
.Column(2, I - 1) = Plage(I).Offset(, 2).Value
Next I
End With
End Sub
Private Sub CommandButton1_Click()
Dim I As Integer
With Me.ListBox1
For I = 0 To .ListCount - 1
If .Selected(I) = True Then
With ActiveSheet.Range("D" & Tbl(I + 1) + 13)
.Value = .Value + 1
End With
End If
Next I
End With
End Sub |