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
| Private Sub B_go_Click()
Dim Tbl()
Me.ListBox1.Clear
Set Rng = Range("a:a")
Set c = Rng.Find(Me.TextBox1.Value, LookIn:=xlValues)
If Not c Is Nothing Then
premier = c.Address
n = 0
Do
n = n + 1: ReDim Preserve Tbl(1 To 3, 1 To n)
Tbl(1, n) = c.Value: Tbl(2, n) = c.Offset(0, 1).Value: Tbl(3, n) = c.Offset(0, 2).Value
Set c = Rng.FindNext(c)
Loop While Not c Is Nothing And c.Address <> premier
End If
Me.ListBox1.Column = Tbl
b = Me.ListBox1.List
Tri b, 2, LBound(b), UBound(b)
Me.ListBox1.List = b
End Sub
Sub Tri(a, ColTri, gauc, droi) ' Quick sort
ref = a((gauc + droi) \ 2, ColTri)
g = gauc: d = droi
Do
Do While a(g, ColTri) < ref: g = g + 1: Loop
Do While ref < a(d, ColTri): d = d - 1: Loop
If g <= d Then
For k = LBound(a, 2) To UBound(a, 2)
temp = a(g, k): a(g, k) = a(d, k): a(d, k) = temp
Next k
g = g + 1: d = d - 1
End If
Loop While g <= d
If g < droi Then Call Tri(a, ColTri, g, droi)
If gauc < d Then Call Tri(a, ColTri, gauc, d)
End Sub |
Partager