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 :

Excel VBA - Le filtre automatique bug [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut Excel VBA - Le filtre automatique bug
    Je veux filtrer un ensemble de date sur une colonne composée de date et de contenu alphabétique.
    La macro crée le filtre correctement, mais au résultat toutes les lignes sont masquées.
    Pour les faire apparaitre la seule solution que j'ai trouvé est de cliquer sur bouton filtre de la colonne / Filtre chronologique / Filtre personnalisée puis OK (les données dans le filtre étant déjà renseigné).

    Ce programme étant intégré a une macro plus importante, je dois trouver une solution pour faire apparaitre correctement le résultat sans cliquer.

    Qui a une solution qui marche ? (voir le fichier exemple en pièce jointe)
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    mauvaise façon de manipuler la date dans ta procédure probablement.
    De façon imagée : si c'est un peu trop "français", t'es obligé d'aller rafraichir à la main l'application du filtre pour qu'Excel comprenne que le petit Anglais de VBA lui parlait (pour une fois) dans sa langue

    Blague à part, montre-nous la partie de la procédure qui met en place le filtre ... et surtout la partie où sont définies tes dates

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    Merci Joe,

    La mise en place de l'auto-filtre n'est pas piloté par la macro, il est créé en dur dans le fichier.
    Le paramètrage du filtre des dates est créé par la procédure ci dessous. La construction de la date est effectivement réalisée pour forcer la date en français ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub SelectionnerSemestre()
    Windows("classeur1.xlsm").Activate
    ActiveSheet.Range("$A$1:$A$9711").AutoFilter Field:=2, Criteria1:=">" & DateSerial(2015, 1, 0), Operator:=xlAnd, Criteria2:="<=" & DateSerial(2015, 7, 0)
     
    End Sub

  4. #4
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il faudrait plutôt utiliser le numéro de série de la date, plutôt que la date directement. Là t'es tranquille, Excel et VBA vont redevenir copain implicitement.

    de plus, il est conseillé de toujours mentionner le classeur et la feuille sur laquelle tu travailles, plutôt que d'activer et de travailler sur l'objet actif.

    également, tu n'as pas besoin de faire référence à la plage complète, tu fais uniquement référence à la première cellule de ta base (A1) pour poser le filtre.


    ceci devrait corriger ton problème, indique le nom de la feuille dans cette procédure (je ne la connais pas), test et dis-nous si c'est ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Workbooks("Classeur1.xlsm").Worksheets("LaFeuille").Range("A1").AutoFilter Field:=2, _
                                        Criteria1:=">" & CLng(DateSerial(2015, 1, 0)), _
                                        Operator:=xlAnd, _
                                        Criteria2:="<=" & CLng(DateSerial(2015, 7, 0))

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Par défaut
    C'est Parfait.
    Merci Joe

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

Discussions similaires

  1. [VB6-Excel] Menu deroulant filtre automatique
    Par max_killer93 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2007, 15h45
  2. [VBA-E] Filtre automatique
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/01/2007, 15h55
  3. [VBA-excel] Filtre automatique et TextBox
    Par DVano dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2006, 17h02
  4. [VBA] exportation vers excel - filtres automatiques?
    Par Christophe93250 dans le forum Access
    Réponses: 10
    Dernier message: 06/01/2006, 16h36
  5. Faire un filtre automatique comme dans Excel
    Par ptitdav dans le forum Access
    Réponses: 2
    Dernier message: 19/09/2005, 13h29

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