XL 2010 TCD filtre chronologique (avant aujourd'hui)

BAT

XLDnaute Occasionnel
Bonjour à tous,

Bon courage si vous n'êtes pas encore ou déjà revenu de congés !

Ma question porte sur les filtres chronologiques des TCD. J'ai dans un colonne un filtre pour afficher uniquement les lignes dont la date est "avant" la date du jour. J'utilise donc le filtre "Avant" dans lequel j'intègre la date du jour.

Hors à chaque fois il faut manuellement renseigner la date du jour, le champ du filtre n'acceptant pas de formule type =aujourdhui().

Avez vous une solution pour ne pas avoir besoin de remettre manuellement la date ?

Merci par avance pour votre aide.

Bien à vous
 

Jean-Eric

XLDnaute Occasionnel
Bonjour,
Pour le principe, une proposition avec une procédure évènementielle à l'activation de la feuille TCD.
Le filtre est automatiquement mis à jour avec la date du jour.
Cdlt.
VB:
Option Explicit

Private Sub Worksheet_Activate()
    With Me.PivotTables(1).PageFields(1)
        If .CurrentPage = Date Then Exit Sub
        .CurrentPage = Date
    End With
End Sub
 

Pièces jointes

  • test_BAT.xlsm
    24.9 KB · Affichages: 28

BAT

XLDnaute Occasionnel
Bonjour Jean-Eric,
Merci pour votre retour.
Je n'ai pas réussi à le faire fonctionner. Le TCD affiche toujours 182 au lieu de 103 si je retire les dates supérieur à la date du jour.
Voici le même fichier avec l'attendu. Sachant que sur ma page j'ai plusieurs TCD.
Bien à vous
 

Pièces jointes

  • Copie de test_BAT.xlsm
    18 KB · Affichages: 28

chris

XLDnaute Barbatruc
Bonjour à tous

Le filtre "année à ce jour" est automatique mais inclus la date du jour.

L'option réappliquer n'étant pas disponible pour les TCD (sauf ajout 2013 ou 2016), il faut néanmoins actualiser ou mieux prévoir l'actualisation du TCD à l'ouverture.
 

Jean-Eric

XLDnaute Occasionnel
Re,
J'avais lu entre les lignes.
Essaie ainsi :
VB:
Option Explicit

Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Me.PivotTables(1).PivotFields("Date")
        .EnableItemSelection = True
        .ShowAllItems = True
        .ClearAllFilters
        .PivotFilters.Add Type:=xlBefore, Value1:=CStr(Date)
    End With
End Sub
 

BAT

XLDnaute Occasionnel
Le filtre "année à ce jour" est automatique mais inclus la date du jour.

C'est exactement ça sauf que celui ci est trop restrictif car fonctionne par année. Du coup il n'intègre pas la date si celle ci est antérieur à l'année. Dommage.

Jean-Eric, ça n'a pas marché, ça m'à intégré plein de lignes à mon TCD (tous les jours de l'année)
 

chris

XLDnaute Barbatruc
Bonjour

Dans ce cas une solution simple est d'ajouter une colonne à la source avec une formule qui renvoie 1 ou 0 selon que la colonne qui contient la date est < aujourdhui() ou pas et placer ce champ en zone de page filtré sur 1 : cela marchera automatiquement à chaque actualisation.
 

Jean-Eric

XLDnaute Occasionnel
Bonjour,
La même chose avec la propriété ShowAllItems à false!...
Cdlt.
VB:
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    With Me.PivotTables(1).PivotFields("Date")
        .EnableItemSelection = True
        .ShowAllItems = False
        .ClearAllFilters
        .PivotFilters.Add Type:=xlBefore, Value1:=CStr(Date)
    End With
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 299
Messages
2 086 990
Membres
103 420
dernier inscrit
eric.wallet46