FIltrage de données en VBA

Résolu/Fermé
Pascal-77 Messages postés 16 Date d'inscription dimanche 28 juin 2009 Statut Membre Dernière intervention 20 juin 2011 - 5 août 2009 à 00:32
 pascal-77 - 6 août 2009 à 15:10
Bonjour,

Je réalise un filtrage en VBA sur Excel.
Par exemple sur 11 lignes. Après filtrage je me retrouve avec 3 lignes ( ligne 3,5 et 9).
J'utilise cette sélection pour remplir une listbox. Je sélectionne ma première cellule, j'incrémente une variable jusqu'à trouver une ligne vide puis j'utilise cette variable pour limiter ma rowsource.
Problème, cette variable parcours l'ensemble de la liste. C'est à dire qu'il ne prends pas uniquement les 3 lignes affichées mais l'ensemble du fichier ( les 11 lignes).
Je suis passé en coordonnées relatives mais ça ne change rien.

Quelqu'un a t'il une idée ?

Merci pour votre aide, je m'arrache les cheveux sur le problème depuis presque 2h00 en parcourant les forums et en testant diverses solutions. Maintenant que je suis chauve, j'espère que quelqu'un pourra m'aider ....

Pascal.

4 réponses

Bonjour,

Il ne faut pas utiliser le filtre de excel. Ou alors ca dépasse mes compétences.

Essaie plutot ca

i=1
j=1
cells(i,j).select 'i est la ligne, j la colonne
do while selection = ""
If selection = 'mets la velaur qui correspond à ton filtre
'tu rajoutes à ta listbox
end if

i=i+1
loop
0
Salut Mélanie,

Merci pour ta solution. En fait lorsque j'ai filtré mes colonnes A et B ma listbox est remplie avec la colonne C. A partir de là, lorsque je sélectionne un élément de ma listbox j'affiche les résultats des colonnes D & E correspondantes sur la userform.
Je vais quand même essayer ta solution demain et la garder si ça fonctionne.

Je te tiens au courant et merci de ton aide.

Pascal.
0
Bonjour,

Le code tel que fourni ne te satisfera peut être pas.

Mais aulieu de if cells = value

essaie ca meme si je ne suis pas sure du du code : if cells(i,j).visible =true
alors tu ajoutes à ta listbox
0
Salut Melanie,

Ma listbox se remplie impeccable, j'ai essayé ton code et un autre que j'ai trouvé sur un autre post : https://forums.commentcamarche.net/forum/affich-11914419-vba-filtre-automatique

Le malheur est que mon code de sélection :
Private Sub ListBox1_Change()
lig = ListBox1.ListIndex + 3
Label4 = Cells(lig, 4)
Label5 = Cells(lig, 5)
Label8 = Cells(lig, 6)
end sub
ne m'affiche pas les bonnes lignes. Ma rowsource peut être les lignes 11,12,13 , ma listbox m'affiche la correspondance des lignes 1,2,3.

J'ai posé la question de l'autre côté. Si tu as une idée ce serait super.
Encore merci à toi.

Pascal.
0