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 :

Filtrer plusieurs colonnes avec critères différents [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Filtrer plusieurs colonnes avec critères différents
    Bonjour à tous,

    Je vous présente mon problème VBA sur excel :

    Je bosse sur un fichier avec plusieurs datas. J'ai un tableau de 11 colonnes (dont 3 masquées) et je souhaite, après avoir trié la colonne D et K,
    apposer un filtre sur la colonne K (jusque là j'y suis parvenu) et refiltrer derrière sur la colonne L.

    Ma macro s’exécute de la manière suivante : je calibre mon tableau ( range("C11:M361")), j'active le filtrage, je trie la colonne D par ordre alphabétique, puis ma colonne K par ordre croissant (ce sont des chiffres).

    Ensuite, je filtre ma colonne K où je choisis de faire partir les valeurs indésirées ("-100"), puis je désire filtrer la colonne L et garder les valeurs entre 0,3 et 7,5, tout en conservant le filtre en colonne K précédemment exécuté.

    LE PROBLÈME : Une fois que je finis de filtrer ma colonne L, tout le tableau est englouti dans le filtrage et plus rien n'apparait.

    (NB : j'ai déjà tout fait à la main, ça fonctionne. En revanche, en faisant les mêmes opérations en code, hop, je n'ai plus rien qui apparait)

    Si vous avez un élément de réponse, ce serait avec plaisir.

    Merci pour votre attention.

    Bien cordialement,

    amorello.


    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Option Base 1
    Option Explicit
    Sub screening_value()
        Dim value As Worksheet
        Dim tableau As Range
     
     
            Set value = ThisWorkbook.Worksheets("S. Value")
            Set tableau = value.Range(Cells(11, 3), Cells(Cells(1048576, 13).End(xlUp).Row, Cells(11, 20).End(xlToLeft).Column))
                If value.AutoFilterMode = True Then tableau.AutoFilter
     
                tableau.AutoFilter
                value.AutoFilter.Sort.SortFields.Clear
                    With value.AutoFilter.Sort.SortFields
                        .Add Key:=Range(Cells(12, 4), Cells(Cells(12, 4).End(xlDown).Row, 4)), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
                        .Add Key:=Range(Cells(12, 11), Cells(Cells(12, 11).End(xlDown).Row, 11)), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
                    End With
     
                        tableau.AutoFilter Field:=9, Criteria1:="<>-100"
                        tableau.AutoFilter Field:=10, Criteria1:=">=0,3", Operator:=xlAnd, Criteria2:="<=7,5"
     
    End Sub

  2. #2
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 127
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 127
    Points : 9 956
    Points
    9 956
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    essaye en remplaçant tes virgules par des points, pour tes chiffres dans les criterias

    L'autofilter a la fâcheuse tendance à jongler entre format Anglais (VBA) et format français si c'est ta version d'Excel

    si tu lui passes un format anglais, il transmettra à Excel le format français
    sinon, tu es obligé de forcer la conversion en allant voir le filtre appliqué et en le revalidant à la main

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2015
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Hello,

    Écoute, je viens tout juste de remplacer mes virgules par des points, ça fonctionne !

    J'ai un excel français, et il insiste à de nombreuses reprises pour que je mette des virgules et pas des points.
    J'ai complètement zappé le détail que mon module se codait en anglais.

    Merci beaucoup pour cette aide rapide, ça fait plaisir !

    Merci !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/02/2007, 12h53
  2. Selection de plusieurs colonnes avec une zone de liste
    Par vinzeffect dans le forum Access
    Réponses: 3
    Dernier message: 20/01/2007, 22h51
  3. plusieurs colonnes avec opérateur IN
    Par inluvwitiou dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/03/2006, 13h29
  4. Requête à plusieurs colonnes avec la fonction COUNT
    Par zigune dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/11/2004, 10h43
  5. Query sur plusieurs colonnes avec count(distinct...)
    Par Jeankiki dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/08/2004, 15h22

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