ListµBox, Valeurs provenant du résultat d'un filtre
cs_kouki69
Messages postés95Date d'inscriptionlundi 27 mars 2006StatutMembreDernière intervention28 août 2015
-
14 juin 2006 à 11:30
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 2011
-
14 juin 2006 à 15:25
Salut,
Je souhaite que ma listebox cherche les données dans une feuille excel ds laquelle un filtre a été réalisé. LE code que j'ai trouvé ne me permet pas de montrer ds la liste box uniquement les valeurs filtrées. Toutes les valeurs de la plage de la feuille sont montrés. Comment faire pour que la listebox ne montre que le résultat du filtre ?? J'ai trouvé une solution intermédiaire mais trop lourde à mon avis qui consiste à copier les cellules du résultats du filtre ds une autre feuille. puis la listbox va chercher le résultat ds cette feuille. Je suis sur qu'il y a une autre possibilité bien + simple.
Avez-vous des idées ????
Merci
A+
Mon Code :
Private Sub ComboBox1_Change()
Dim Emetteur As String
Emetteur = ComboBox1.Value
If ComboBox1.Value = "(tous)" Then
Selection.AutoFilter Field:=1
ListBox1.RowSource = "Feuil2!A2: E5000"
En fait "Emetteur" est la valeur choisi ds la ComboBox, la valeur que je filtre.
Les données se trouvent ds la colonne A.
Ce que je veux faire c'est :
- Je selectionne une donnée dans la comboBox (ça marche)
- Dès que la valeur est choisie, le filtre est fait sur la feuil2.(ca marche)
- Ce qui devrait s'enchainer est la mise à jour de la listebox sur le même userform de la comboBox
Le code revu selon tes conseils ci-dessous.
A+
If ComboBox1.Value = "(tous)" Then
Selection.AutoFilter Field:=1
Dim i As Integer
For i = 2 To 5000
If Cells(i, 1).Value = "Emetteur" Then
ListBox1.AddItem (Range("A" & i & ":E" & i).Value)
End If
Next i
Else
Selection.AutoFilter Field:=1, Criteria1:=Emetteur
'ListBox1.RowSource = "Feuil2!A2: E5000"
Dim j As Integer
For j = 2 To 5000
If Cells(j, 1).Value = "Emetteur" Then
ListBox1.AddItem (Range("A" & j & ":E" & j).Value)
End If
Next j
J'ai réussi à te faire ça, le problème, c'est qu'au 2eme tour de la boucle 'j' ça va certainement s'effacer.
Essaie donc de l'adapter mais je ne peux faire plus, vraiment désolé, en espérant te filer au moins un bon départ..