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