Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

alimenter une listbox avec données filtrées

  • Initiateur de la discussion Initiateur de la discussion casefayere
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

C

casefayere

Guest
Bonsoir,

Je cherche à alimenter une listbox en fonction d'une feuille avec des données filtrées sur une colonne. Les cellules doivent contenir (ex : *haricot*)

pas de problème pour créer le filtre avec vba mais je n'arrive pas à creer la listbox avec les données filtrées

merci de vos réponses

a+
 
Re : alimenter une listbox avec données filtrées

Bonjour Casafayere, Mathieu

essaye comme ci dessous, en supposant que ta colonne filtrée soit la A :

Code:
ListBox1.List = Range("A2:A" & Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Value

ou avec une boucle :

Code:
Dim c As Range
For Each c In Range("A2:A" & Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
    ListBox1.AddItem c.Value
Next c

bonne journée.
@+
 
Re : alimenter une listbox avec données filtrées

Bonsoir,

Excusez pour le retard mais j'ai trouvé ma solution entre temps :
Code:
Private Sub produitfiltre()
Dim Plage As Range, Cel As Range
Dim produit
Dim ERREUR
  With Sheets("feuil1")
  If .AutoFilterMode Then 'vérifie si le filtre automatique est actif et
     .AutoFilterMode = False 'l'enlève
End If
 
    produit = TextBoxproduitcherche 'valeur entrée dans un textbox pour alimenter le filtre
    ERREUR = .Range("a2").End(xlDown).Offset(0, 0).Row 'variable donnant le n° de la dernière lg à filtrer
    
    .Range("c2").AutoFilter
    .Range("c2").AutoFilter Field:=3, Criteria1:="*" & produit & "*" 'applique le filtre
    Set Plage = .Range("g2", .Range("g2").End(xlDown))
    Set Plage = Plage.Cells.SpecialCells(xlCellTypeVisible) 'tableau avec données filtrées
    
    If Plage.Count > ERREUR Then 'eviter de renvoyer une erreur ou un bug
    If .AutoFilterMode Then
     .AutoFilterMode = False
    Exit Sub 'pour un filtre non trouvé
    End If
    ListBoxPRODUITS.Clear 'vide la listbox
    For Each Cel In Plage 'et la réalimente
    With ListBoxPRODUITS
      .AddItem Cel(1, -3)
      .Column(1, .ListCount - 1) = Format(Cel(1, -2), "#,##0.00 €")' format a changer suivant besoin
      .Column(2, .ListCount - 1) = Format(Cel(1, 0), "#,##0.00 €")' format a changer suivant besoin
 
      .Column(3, .ListCount - 1) = Format(Cel(1, 4), "#,##0.00 €")' format a changer suivant besoin
 
      .Column(4, .ListCount - 1) = Format(Cel(1, 5), "###0")' format a changer suivant besoin
 
      .Column(5, .ListCount - 1) = Cel(1, 1)
    End With
        
    Next Cel
Selection.AutoFilter 'enlève le filtre de la feuille
  End With
End Sub

Merci quand même

a+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
14
Affichages
484
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…