AutoFilter sur une listeBox

taratata

XLDnaute Junior
Bonjour,

Dans un UserForm, j'ai une ListBox ayant comme RowSource un tableau structuré.
Je cherche à afficher dans cette ListBox le résultat d'un filtre choisi par l’intermédiaire d'un Combox.

J'ai réussi à poser le filtre du ComBox sur le Tableau structuré (cela fonctionne bien).
Malgré tous, la ListBox affiche toujours le contenu total du tableau structuré.

L'objet Listbox ne contient pas l'information RowSource (C'est dû à la configuration du MutliSelect)
Elle est donnée dans

VB:
Private Sub UserForm_Initialize()

' --------  Le contrôle ListBox doit être configurer  -------

' - MultiSelect = fmMultiSelectMulti
' - ColumnCount
' - Columnwidths

' -------  RowSource doit être configurer ci-dessous  -------

    ' Déclaration du tableau structuté
    tablo = [Tab_BNIC]
    ' Lien RowSource
    ListBox_BNIC.List = tablo
    
    ....

Existe t-il une possibilité de poser un filtrage directement du la ListBox?

le but étant d'afficher en temps réel le résultat du filtre sélectionné depuis le combox.
Le contenu du Combox vient de la colonne 3 du tableau structuré

merci pour vos idées ...
 

Pièces jointes

  • 1 - TEST.xlsm
    624.1 KB · Affichages: 16

ChTi160

XLDnaute Barbatruc
Bonsoir taratata
Bonsoir le Fil(bruno),le Forum
filtrer directement ....sur la listebox
peut etre avec une boucle sur ce qui ce trouve dans ta listbox
ex
VB:
 for l =  listbox1.listcount-1 to 0 step -1
if listbox1.list(l,1)<> xxxx then
listbox1.remove(l)
End if
Next l
ou recuperer dans un tableau temporaire les lignes resultat du filtre....
puis de remplir la listbox avec ce tableau.
non teste .
Bonne soiree
jean marie
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Bonsoir,

Exemples: http://boisgontierjacques.free.fr/pages_site/FiltreAuto.htm#TransListBox


VB:
Private Sub UserForm_Initialize()
  Sheets.Add
  Sheets("BD").Range("_FilterDataBase").Offset(1).SpecialCells(xlCellTypeVisible).Copy [A1]
  Me.ListBox1.List = [A1].CurrentRegion.Value
  Application.DisplayAlerts = False
  ActiveSheet.Delete
  For i = 1 To 3
    Me("label" & i) = Sheets("bd").Cells(1, i)
  Next i
End Sub


Boisgontier
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 071
Messages
2 085 051
Membres
102 767
dernier inscrit
jmkp