Private Sub TextBox1_Change()    'methode compose new tbl(tbl2)
    Dim tbl2(), a&, i&, ic&
    ListBox1.Clear
    If TextBox1 = "" Then
        'bien que la boucle remet d'elle meme le tableau en entier si le textbox est vide
        'pas la peine de la faire mouliner
        ListBox1.List = tableau
    Else
        For i = 1 To UBound(tbl)
            'option de recherche
            If tbl(i) Like "*|" & TextBox1.Value & "*|" Then    'on cherche dans tbl (option :COMMENCE PAR )
                'If tbl(i) Like "|*" & TextBox2.Value & "*|" Then    'on cherche dans tbl (option:CONTIENT)
                a = a + 1: ReDim Preserve tbl2(1 To UBound(tableau, 2), 1 To a)
                For ic = 1 To UBound(tbl2): tbl2(ic, a) = tableau(i, ic): Next
                ListBox1.Column = tbl2
                'With ListBox1: .AddItem: For c = 1 To UBound(tableau, 2): .List(.ListCount - 1, c - 1) = tableau(i, c): Next: End With
            End If
        Next
    End If
End Sub