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] Filtrer col non adjacente


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut [VBA E] Filtrer col non adjacente
    Bonjour,

    J'ai un tableau qui se compose de 10 colonnes, et je tente de désigner 2 colonnes (non adjacente) comme filtre;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    'FILTRE ANNEE
     Columns("J:J").Select
     Selection.AutoFilter
     
     'FILTRE MOTIFS
    Columns("G:G").Select
    Selection.AutoFilter
    Le code du second filtre me supprime le filtre inséré sur la colonnne J
    Merci de votre aide

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Tu dois appliquer un filtre automatique sur toute la plage de donnée puis sélectionner tes colonnes et appliquer tes critères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Critère1 = "1000"
        Critère2 = "30"
        Cells.AutoFilter
        Columns("J:J").AutoFilter Field:=10, Criteria1:=Critère1 
        Columns("G:G").AutoFilter Field:=7, Criteria1:=Critère2
    10 et 7 étant le N° de colonne (!!!) (je le découvre)
    A+

  3. #3
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Bonjour,

    Structurellement, il semble en effet qu'il soit impossible de définir un filtre sur 2 colonnes non-adjacentes...

    J'ai testé ceci :
    Code VB : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("J:J", "G:G").Columns.AutoFilter

    mais cela définit un filtre sur chaque colonne entre G et J ...

    Théo

  4. #4
    Membre émérite
    Avatar de Theocourant
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    618
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 618
    Par défaut
    Citation Envoyé par ouskel'n'or
    Tu dois appliquer un filtre automatique sur toute la plage de donnée puis sélectionner tes colonnes et appliquer tes critères
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Critère1 = "1000"
        Critère2 = "30"
        Cells.AutoFilter
        Columns("J:J").AutoFilter Field:=10, Criteria1:=Critère1 
        Columns("G:G").AutoFilter Field:=7, Criteria1:=Critère2
    10 et 7 étant le N° de colonne (!!!) (je le découvre)
    A+
    Je ne connaissais pas : je vais tester également.


    EDIT : Je viens de tester : cela ne fonctionne pas... cela applique un filtre sur toutes les colonnes ayant au moins une cellule avec une valeur.

  5. #5
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    J'ai le même résultat que toi THEO

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Curieux, pour l'essai je viens de recopier une colonne filtrée sur une nouvelle colonne triée différemment et le filtre est bien demeuré sur les colonnes indiquées, pas sur les autres (vba 97)
    Je vérifie sur 2003 -> Ok sur Excel 2003 aussi

  7. #7
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    J'y arrive pas
    J' envoi mon fichier ...
    Fichiers attachés Fichiers attachés

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Pièce jointe 8435
    Pour qu'un filtre double fonctionne, il faut que les deux critères soient remplis sur la ligne... Je pense que je ne t'apprends rien mais c'est mieux en le disant.
    Pour montrer qu'il fonctionne bien, j'ai mis les mêmes valeurs sur deux lignes différentes mais c'est bien l'objet d'un filtre que de les retrouver
    Tu dis
    A+

  9. #9
    Membre éprouvé Avatar de totoche
    Inscrit en
    Janvier 2004
    Messages
    1 090
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 1 090
    Par défaut
    Merci & Ok sur le principe, mais ce que je cherche a faire c'est que les colonnes qui ne font pas parties des critères de filtres n'aient pas de flêche associées...
    Dans le zip que je transmets, le probleme c'est que pour ce résultat les colonnes doivent être adjacentes...

    Je pense qu'il va falloir que je code un peu +
    Fichiers attachés Fichiers attachés

  10. #10
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Une solution consisterait à copier le résultat du filtre sur une autre feuille. SilkyRoad a donné une solution il y a peu de temps, consistant à ne copier que les lignes visibles de ta feuille filtrée.
    Une fois la copie réalisée sur une feuille vide, le plus simple serait de supprimer les colonnes inutiles.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        Worksheets("Feuil1").AutoFilter.Range.SpecialCells(xlCellTypeVisible).Copy _
        Destination:=Worksheets("Feuil2").Cells(1, 1)
    Te reste plus qu'à supprimer les colonnes et à expédier le document en supprimant feuil1 et en le sauvegardant sous un autre nom
    A+

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/03/2014, 23h15
  2. Réponses: 1
    Dernier message: 28/07/2009, 16h22
  3. filtrer des lignes non adjacentes
    Par collinchris dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 20/08/2007, 13h39
  4. [A2-VBA][Débutante] Erreur "Argument non valide"
    Par Ericka dans le forum Access
    Réponses: 2
    Dernier message: 08/09/2006, 16h35
  5. [EXCEL][VBA] Compter les cellules non-vides
    Par Squelet dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/02/2006, 15h40

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