Filtre Userform

bonjour

j'ai cette usf de recherche qui fonctionne bien

Dim f, choix(), rng, BD(), Ncol, ColVisu()

Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
UserForm2_1.Show

End Sub

Private Sub UserForm_Initialize()
Me.Left = Application.Left + Application.Width / 2 - Me.Width / 2
Me.Top = Application.Top + Application.Height / 2 - Me.Height / 2
   Set f = Sheets("cable")
   ColVisu = Array(1, 2, 3, 4, 5, 7, 8, 9, 10)      ' colonnes à visualiser
   Set rng = f.Range("A3:N" & f.[A65000].End(xlUp).Row)
   BD = rng.Value
   Ncol = UBound(ColVisu) + 1
   '-- en têtes de colonne ListBox
   X = 22
   Y = Me.ListBox1.Top - 12
   For Each K In ColVisu
     Set Lab = Me.Controls.Add("Forms.Label.1")
     Lab.Caption = f.Cells(1, K)
     Lab.Top = Y
     Lab.Left = X
     X = X + f.Columns(K).Width * 0.9
     temp = temp & f.Columns(K).Width * 0.9 & ";"
   Next
   temp = Left(temp, Len(temp) - 1)
   Me.ListBox1.ColumnCount = UBound(ColVisu) + 1
   Me.ListBox1.ColumnWidths = temp
   '--
   TblTmp = rng.Value
   For i = LBound(BD) To UBound(BD)
     ReDim Preserve choix(1 To i)
     For Each K In ColVisu
       choix(i) = choix(i) & BD(i, K) & " * "
     Next K
   Next i
   '--- valeurs initiales dans ListBox
   Dim Tbl(): ReDim Tbl(1 To UBound(BD), 1 To Ncol)
   For i = 1 To UBound(BD)
      c = 0
      For Each K In ColVisu
        c = c + 1: Tbl(i, c) = BD(i, K)
      Next K
   Next i
   'TriMultiCol Tbl, LBound(Tbl), UBound(Tbl), 1
   Me.ListBox1.List = Tbl
   Me.Label1.Caption = Me.ListBox1.ListCount & " Ligne(s)"
End Sub
Private Sub TextBox1_Change()
  If Me.TextBox1 <> "" Then
     mots = Split(Trim(Me.TextBox1), " ")
     Tbl = choix
     For i = LBound(mots) To UBound(mots)
        Tbl = Filter(Tbl, mots(i), True, vbTextCompare)
     Next i
     If UBound(Tbl) > -1 Then
        Dim b(): ReDim b(1 To UBound(Tbl) + 1, 1 To Ncol)
        For i = LBound(Tbl) To UBound(Tbl)
          a = Split(Tbl(i), "*")
          For K = 1 To Ncol: b(i + 1, K) = a(K - 1): Next K
        Next i
        Me.ListBox1.List = b
        Me.Label1.Caption = UBound(Tbl) + 1 & " Ligne(s)"
     End If
  Else
     UserForm_Initialize
  End If
End Sub

je voudrais rajouter 2 checkbox qui filtres les résultats un affiche pas les lignes dont la cellule h contient le mot vide et une autre qui n'affiche pas les lignes dont la colonne j contient le mot renvoyer

rajouter les checbox sa je c faire mais la partie filtre non

merci

Bonjour

Rechercher des sujets similaires à "filtre userform"