IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[VBA-E]Autofilter et Excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut [VBA-E]Autofilter et Excel
    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.

  2. #2
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    Et qu'est-ce que tu fais du résultat? Tu copies le résultat du filtre sur chaque élément aillerus?

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut autofilter
    oui, je le mets dans une variable.
    Mon but est pour chacun des éléments du filtre d'en calculer le nombre.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Par défaut
    Salut,

    Et les critères pour filtrer ils se trouvent où ?

  5. #5
    Membre Expert Avatar de Megaxel
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    1 187
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 1 187
    Par défaut
    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.

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Par défaut
    Citation Envoyé par Megaxel
    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.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut autofilter
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  8. #8
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3
    Par défaut Re: autofilter
    Citation Envoyé par gamin
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 ?

    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.

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut Autofilter
    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:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Selection.AutoFilter Field:=4, Criteria1:="212"
    et non comme je voudrais faire sa "position", sa place dans la liste de la colonne du filtre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Selection.AutoFilter Field:=4, Criteria1:=1

  10. #10
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut Autofilter
    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 !

  12. #12
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    pourtant chez moi ca marche avec tout les critères

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2003
    Messages : 10
    Par défaut Autofilter
    Ok, j'ai trouvé mon erreur.
    Merci beaucoup.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA] Test d'application excel ouverte
    Par Rayno1979 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 08/07/2009, 19h38
  2. [VBA] supprimer un Classeur Excel
    Par beurnoir dans le forum Access
    Réponses: 26
    Dernier message: 14/11/2005, 14h05
  3. [Vba] Lire BDD avec Excel
    Par Emcy dans le forum Access
    Réponses: 12
    Dernier message: 09/11/2005, 11h09
  4. [excel vba]case à cocher dans excel pour plusieurs lignes
    Par fcoisb dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 02/03/2005, 11h23
  5. [VBA-E] macro conversion excel vers csv
    Par baboune dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 15/07/2004, 09h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo