Listbox filtrante à choix multiple

Bonjour le forum,

Je suis devant deux difficultés que je n'arrive pas à contourner et malgré mes errances sur différents forum je n'ai pas trouver ou compris la solution.

Voilà j'utilise une liste box qui doit me servir à terme de filtre sur ma colonne A,

En option simple de la liste box le filtrage marche impeccable mais dès que je passe en multi selection je n'arrive pas à contourner le fait de devoir mettre plusieurs critères de filtration comme pour la filtration classique.

Mon second problème rejoindra le premier : La valeur N°SAP ( en commentaire dans les macros) devra me permettre de selectionner toutes les valeurs numériques de la colonne.( Pour éviter de sélectionner toutes les valeurs numériques pour filtrée)

Je vous laisse un fichier exemple, et je reste à votre disposition pour toute question ou complément d'information.

Merci à ceux qui prendrons le temps de me lire voir plus !

Bonjour,

Exemple de filtre auto avec ListBox multi-sélection

Private Sub UserForm_Initialize()
  TblBD = [Tableau1].Value
  '--- construction des cases d'options villes
  Set d = CreateObject("scripting.dictionary")
  For i = 1 To UBound(TblBD): d(TblBD(i, 3)) = "": Next i
  temp = d.keys
  Tri temp, LBound(temp), UBound(temp)
  Me.ListBox1.List = temp       ' Villes triées
End Sub

Private Sub B_filtre_Click()
   Dim Tbl()
   For i = 0 To Me.ListBox1.ListCount - 1
    If Me.ListBox1.Selected(i) = True Then
       n = n + 1: ReDim Preserve Tbl(1 To n)
       Tbl(n) = Me.ListBox1.List(i)
    End If
   Next i
   If n > 0 Then Sheets("bd").[A1].AutoFilter Field:=3, Criteria1:=Tbl, Operator:=xlFilterValues
End Sub

Private Sub B_tout_Click()
   Sheets("bd").[A1].AutoFilter
End Sub

Boisgontier

Bonsoir Boisgontierjacques ,

C'est un honneur d'avoir une réponse de ta part, je vogue souvent sur ta page pour trouver une solution à mes problèmes.

Je pense avoir bien repris ton code et a priori cela fonctionne, pourtant j'ai un bug sur la filtration de mon critère n °SAP, je ne sais pas pourquoi mais selon le format de la cellule le filtre fonctionne plus ou moins bien, j'ai essayer ton les cellulles en standard, en txt ou en nombre mais seul les cellules indiquer ayant une erreur sont bien repris par le fitre, etrange.

Je fais un test logic pour savoir si ma cellule contient un resultat numérique, le tbl s'alimente correctement ex les cellules 6 et 9 ne se filtrent pas ??

Si quelqu'un à une petite idée

Je laisse la nouvelle version du fichier avec l'ajout du code de Boisgontierjacques

Bon j'ai trouvé une parade pour forcer les nombres en txt pour que les filtres fonctionnent parfaitement

Alors pour convertir mes valeurs en colonne "A" ca donne :

Sub Macro4()
Dim Valeur As Variant, Donnee As String
For i = 1 To 53
Valeur = Cells(i, 1).Value
Donnee = CStr(Valeur)
Cells(i, 1).Value = Donnee
Next
Columns("A:A").NumberFormat = "@"
End Sub

Merci pour le gros coup de main,

A bientôt

Rechercher des sujets similaires à "listbox filtrante choix multiple"