Option Compare Text
Dim f, Rng, TblBD(), NbCol
Private Sub UserForm_Initialize()
Set f = Sheets("BD")
Set Rng = f.Range("A2:L" & f.[A65000].End(xlUp).Row)
NbCol = Rng.Columns.Count
TblBD = Rng.Value
Me.ListBox1.List = TblBD
Me.ListBox1.ColumnCount = NbCol
EnteteListBox
End Sub
Private Sub TextBox1_Change()
Dim b()
tmp = "*" & Replace(Me.TextBox1, " ", "*") & "*"
n = 0
For i = LBound(TblBD) To UBound(TblBD)
If TblBD(i, 2) Like tmp Or TblBD(i, 5) Like tmp Then
n = n + 1: ReDim Preserve b(1 To NbCol + 1, 1 To n)
For k = 1 To NbCol: b(k, n) = TblBD(i, k): Next k
End If
Next i
If n > 0 Then Me.ListBox1.Column = b Else Me.ListBox1.Clear
End Sub
Sub EnteteListBox()
x = Me.ListBox1.Left + 8
Y = Me.ListBox1.Top - 12
For i = 1 To NbCol
Set lab = Me.Controls.Add("Forms.Label.1")
lab.Caption = Rng.Offset(-1).Cells(1, i)
lab.Top = Y
lab.Left = x
x = x + Rng.Columns(i).Width * 1.1
temp = temp & Rng.Columns(i).Width * 1.1 & ";"
Next
temp = Left(temp, Len(temp) - 1)
Me.ListBox1.ColumnWidths = temp
End Sub