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 :

Filtre Chronologique TCD VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Par défaut Filtre Chronologique TCD VBA
    Bonjour à tous,

    Dans ma macro VBA, je souhaiterai faire un filtre chronologique, sur mon TCD, étant antérieur ou égal à J-10 de la date du jour.

    Mettant à jour ce fichier toutes les semaines, je n'arrive pas à prendre en compte la date du jour et à faire filtrer le TCD à J-10.

    Auriez-vous une solution ?

    Bastien

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    dans l'idee, je suis parti sur ce code la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub piou()
        Dim i As PivotItem
        With ActiveSheet.PivotTables("PivotTable1").PivotFields("Dt")
            For Each i In .PivotItems
                i.Visible = CDate(i.Caption) <= Date - 10
            Next i
        End With
    End Sub
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    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,

    une proposition sans devoir boucler sur chaque item

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With Worksheets("MaFeuille").PivotTables("MonTCD").PivotFields("MonChamps")
        .ClearAllFilters
        .PivotFilters.Add2 Type:=xlBefore, Value1:=CStr(Date - 10)
    End With
    On supprime les filtres du champs et on pose un filtre chronologique "Avant la date du jour - 10"

    Je te laisse compléter le nom de ta feuille, de ton TCD, et du champs à filtrer

  4. #4
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 568
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 568
    Par défaut
    Bonjour

    A noter qu'on peut également le faire sans VBA en

    • ajoutant une colonne calculée à la source qui affiche 0 ou 1 selon que la ligne est ou non dans la plage de dates requise
    • plaçant le champ correspondant en champ de filtre (page)
    • en le filtrant sur la valeur 1


    L'actualisation du TCD recalculera automatiquement le filtre

  5. #5
    Candidat au Club
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Par défaut
    Bonjour à tous,

    Tout d'abord, je vous remercie pour vos réponses.

    Je bloque sur la partie Date qui, pour vous, semble afficher la date du jour puisqu'elle s'affiche en bleu mais lorsque j'applique le code sur ma macro, la date du jour ne s'applique pas.

    Comment faire ?

    Bastien

Discussions similaires

  1. Filtre chronologique ne marche pas sur vba
    Par adluma dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 16/11/2021, 17h54
  2. Filtre TCD vba Avec deux date
    Par martined dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/02/2016, 22h34
  3. [XL-2010] Coder un filtre « Date » en VBA dans un TCD sur Excel
    Par Choupinoette dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/02/2015, 11h26
  4. [Toutes versions] Comment récuperer un filtre de tcd en vba
    Par lcolombain dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 15/03/2012, 04h57
  5. Filtre automatique en VBA
    Par kikou44 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/07/2006, 21h24

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