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

Excel Discussion :

filtre automatique à partir de la date du jour [XL-2010]


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 11
    Points : 10
    Points
    10
    Par défaut filtre automatique à partir de la date du jour
    Bonjour,

    Je suis en train de travailler sur un fichier qui recense tous les Ordres de Fabrication de l'usine sur plusieurs années. J'aimerais réussir à filtrer ces données en fonction de la date du jour, de façon à avoir la liste des OF sur les 6 derniers mois uniquement.

    De ce fait, j'ai commencé à écrire une macro qui va filtrer automatiquement la liste, en fonction de la date du jour comme ceci :

    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
     
    Sub filtre_date()
    '
    ' filtre_date Macro
    '
    Dim datedujour As Date
    Dim sixmois As Date
     
    datedujour = Format(Date, "dd/mm/yyyy")
    sixmois = Format(Date - 6, "dd/mm/yyyy")
     
     
     ActiveSheet.Range("$A$1:$BF$22349").AutoFilter Field:=8, Criteria1:= _
            ">=" & sixmois, Operator:=xlAnd, Criteria2:="<=" & datedujour
    End Sub
    (soit dit en passant mon code ne va pas 6 mois en arrière mais plutôt 6 jours... bref cela ne reste pas mon soucis principal je m'en occuperai plus tard...)

    En exécutant la macro, je me rends compte que la liste n'a pas changé, comme si la macro n'avait rien fait, alors que si je vais voir manuellement le filtre de la colonne "date", je retrouve bien les dates commandées depuis la macro ! Il faut alors que je fasse "OK" dans le filtre pour voir la liste filtrée.

    Je ne comprends pas pourquoi le filtre ne se met pas en place directement suite à la macro....
    C'est pourquoi je fais appel à votre aide, chers amis développeur, en espérant qu'une âme charitable puisse me donner un élément de reponse x)

    Merci d'avance d'avoir pris le temps de lire mon message,

    Julien

  2. #2
    Expert éminent

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

    quand tu utilises des dates sous ce format, ton filtre est posé, mais tu es obligé d'aller manuellement dans la boite de dialogue excel qui contient le filtre .... et valider pour que ça prenne effet

    si tu utilises le format Long de la date, pour utiliser son numéro de série, tu n'as plus de problème

    au passage, la date du jour est définie par l'instruction Date, ce n'est pas la peine de passer par une variable
    et si tu veux 6mois simplifiés, il te suffit de soustraire 180 à Date

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With ActiveSheet.Range("$A$1:$BF$22349")
        .AutoFilter 8, ">=" & CLng(Date) - 180, xlAnd, "<=" & CLng(Date)
    End With

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Doubs (Franche Comté)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 11
    Points : 10
    Points
    10
    Par défaut
    Bonjour,

    Merci de la réponse rapide, j'ai essayé votre méthode à vrai dire je n'ai pas réussi à faire fonctionner mon filtre, car j'ai l'impression que le CLng() a converti ma date en chiffres... Par contre, j'ai testé en mettant (Date, "mm/dd/yyyy") et non pas (Date, "dd/mm/yyyy"), et cela a fonctionné !!

    Cependant, votre réponse m'a été très utile, car lorsque l'on veut faire un filtre via une macro dans un tableau croisé dynamique, la méthode que j'ai essayé ne fonctionne pas, mais la pour le coup, c'est la vôtre qui fonctionne !

    Alors pour conclure, au cas où certains se poseraient les mêmes questions que moi j'ai utilisé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveSheet.Range("$A$1:$BF$22349").AutoFilter Field:=4, Criteria1:= _
            ">=" & Format(Date - 10, "mm/dd/yyyy"), Operator:=xlAnd, Criteria2:="<=" & Format(Date, "mm/dd/yyyy")
    cette méthode pour un filtre automatique dans une table de donnée



    et cette méthode pour un filtre automatique dans un TCD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    ActiveSheet.PivotTables("Nom du tableau").PivotFields("DATE").PivotFilters.Add Type _
            :=xlDateBetween, Value1:=CLng(Date) - 180, Value2:=CLng(Date)
    Voilà, en tout cas merci pour cet élément de réponse qui m'a appris encore une autre petite subtilité du code VBA...

    Julien

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

Discussions similaires

  1. [Vxi3] Filtre automatique à partir d'une date
    Par Baldenschaft dans le forum Deski
    Réponses: 2
    Dernier message: 30/08/2012, 13h13
  2. filtre automatique par rapport à une date
    Par ericdev67 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/11/2009, 16h04
  3. découper une chaine de dates à partir de la date du jour
    Par clavier12AZQSWX dans le forum Général Python
    Réponses: 6
    Dernier message: 12/06/2009, 15h17
  4. Etat "automatique" à partir d'une date
    Par mymi10 dans le forum IHM
    Réponses: 9
    Dernier message: 08/10/2008, 13h21
  5. select à partir de la date du jour
    Par angeleweb dans le forum Requêtes
    Réponses: 4
    Dernier message: 25/10/2007, 18h24

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