Bonjour,
je voudrais dans un sheet excel sur une colonne déterminée filtrer les données et parcourir le filtre.
C'est-à-dire prendre le 1ier élément du filtre, puis le suivant,...
Merci d'avance.
Version imprimable
Bonjour,
je voudrais dans un sheet excel sur une colonne déterminée filtrer les données et parcourir le filtre.
C'est-à-dire prendre le 1ier élément du filtre, puis le suivant,...
Merci d'avance.
Et qu'est-ce que tu fais du résultat? Tu copies le résultat du filtre sur chaque élément aillerus?
oui, je le mets dans une variable.
Mon but est pour chacun des éléments du filtre d'en calculer le nombre.
Salut,
Et les critères pour filtrer ils se trouvent où ?
Si tu veux mon avis, oublie le filtre Excel, et fais tout dans une macro: Tu parcours ta colonne, et tu comptes les éléments de chaque type.
C'est ce que je pensais aussi.Citation:
Envoyé par Megaxel
C'est là que situe mon problème. Plutôt que d'indiquer chacun des éléments de mon filtre, je voudrais lui demander de me les donner les uns après les autres dans une boucle for ... next.
Malheureusement, je ne trouve pas le bon code.
Code:
1
2
3
4
5
6 for i = 1 to 50 Selection.AutoFilter Field:=4, Criteria1= i ind_ligne_code(i) = Worksheets("original").Range("C2:C" & _ Worksheets("original").Range("C65536").End(xlUp).Row).SpecialCells(xlVisible).Count next i
Parcourir ton filtre ou bien la colonne qui contient les données c'est pareil... non ? Sinon je reviens avec ma question où sont stockés les critères ?Citation:
Envoyé par gamin
Tes critères ne peuvent quand même pas être la valeur de la variable incrémentée qui meut ta boucle ? Ou alors les valeurs de départ et de fin doivent être stockées quelque part.
Je voudrais justement éviter de parcourrir cette colonne car en VB6 cela prends beaucoup plus de temps qu'en VBA.
mon idée était donc de prendre éléments par éléments que constitue cette colonne( ou le filtre).
Mais dans un autofilter on indique la valeur du critère:
et non comme je voudrais faire sa "position", sa place dans la liste de la colonne du filtreCode:
1
2 Selection.AutoFilter Field:=4, Criteria1:="212"
Code:
1
2 Selection.AutoFilter Field:=4, Criteria1:=1
Code:
1
2
3
4
5
6
7
8
9 Dim MaPlage As Range, Critere As Range, MaCell As Range Set MaPlage = Range("E1:E1937") Range("E1:E1937").AdvancedFilter Action:=xlFilterInPlace, Unique:=True Set Critere = MaPlage.Offset(1).SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants) For Each MaCell In Critere.Cells MsgBox Application.WorksheetFunction.CountIf(MaPlage, MaCell.Value) Next ActiveSheet.ShowAllData
Je suis désolé mais je cherche le code pour trouver le nombre de ligne pour chaqu'un des critères.
Ici ton code ne me donne la valeur que pour le premier critère !
pourtant chez moi ca marche avec tout les critères :koi:
Ok, j'ai trouvé mon erreur.
Merci beaucoup.