FIltrage de données en VBA
Résolu
Pascal-77
Messages postés
16
Date d'inscription
Statut
Membre
Dernière intervention
-
pascal-77 -
pascal-77 -
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.
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.
A voir également:
- FIltrage de données en VBA
- Fuite données maif - Guide
- Supprimer les données de navigation - Guide
- Trier des données excel - Guide
- Tnt base de données vide ✓ - Forum TNT / Satellite / Réception
- Reinstaller windows sans perte de données - Guide
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
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
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.
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.
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
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
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.
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.