Bonsoir,
Option Compare Text
Dim TblBD, ColVisu(), NbCol
Private Sub UserForm_Initialize()
nomtableau = "tableau2"
ColVisu = Array(2, 3, 4) ' Colonnes à visualiser
NbCol = UBound(ColVisu) + 1
TblBD = Range(nomtableau).Value
Me.ListBox1.ColumnCount = UBound(TblBD, 2)
Me.ListBox1.ColumnWidths = "80;30;80"
'---- Contenu ListBox initial
Dim Tbl(): ReDim Tbl(1 To UBound(TblBD), 1 To NbCol)
For i = 1 To UBound(TblBD)
c = 0
For Each k In ColVisu
c = c + 1: Tbl(i, c) = TblBD(i, k)
Next k
Next i
Me.ListBox1.List = Tbl
End Sub
Private Sub TextBox1_Change()
Dim Tbl(): j = 0
clé = "*" & Me.TextBox1 & "*"
For i = 1 To UBound(TblBD)
If TblBD(i, 1) Like clé Then
j = j + 1: ReDim Preserve Tbl(1 To NbCol, 1 To j)
c = 0
For Each k In ColVisu
c = c + 1: Tbl(c, j) = TblBD(i, k)
Next k
End If
Next i
If j > 0 Then Me.ListBox1.Column = Tbl Else Me.ListBox1.Clear
End Sub
On peut ajouter les entetes automatiques.
Boisgontier