Tableau croisé dynamique - rendre invisible infos

Bonjour,

Est-il possible de rendre invisible, de manière automatique, des informations qui sont antérieures à "aujourd'hui" dans un tableau croisé dynamique? Si oui, comment dois-je procéder?

D'avance merci pour vos réponses éclairées

Bonjour,

Tu peux insérer ce code, dans l'évènement de feuille (clic droit sur le nom de l'onglet, "Visualiser le code")

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim PVi As PivotItem
With Application
    .EnableEvents = False
    .ScreenUpdating = False
        For Each PVi In Me.PivotTables("Tableau croisé dynamique1").PivotFields("date").PivotItems
            PVi.Visible = (CDate(PVi) >= Date)
        Next PVi
    .EnableEvents = True
    .ScreenUpdating = True
End With
End Sub

Noms du TCD et du Champ à adapter....

Ce code se lancera dès que tu feras une actualisation de ton TCD...

Bonne journée

Salut,

J'ai un petit problème, après avoir collé ton code en suivant ta procédure (clic-droit sur l'onglet de la feuille où se trouve l'évènement, insertion du code dans le "worksheet", enregistrer) et que j'actualise ensuite... rien ne se passe. C'est probablement quelque chose d'évident que je loupe, mais je suis vraiment un peu à la rue avec ces codes.

Cordiales salutations

Adikt

Bonsoir,

Avec les TCD tout n'est pas toujours simple. Mets ton fichier en ligne ce sera plus simple de te donner une solution correcte.

A te relire

Salut,

Je te transmets donc le fichier en question en annexe.

D'avance merci!

18question-adikt.zip (31.80 Ko)

Re,

Ton code n'est pas placé comme te l'as expliqué cousinhub. Il est placé dans la feuille "Saisie rempl." au lieu de celle concernée par le TCD. Enlève le de cette feuille et replace le dans la feuille contenant le TCD.

Tu peux aussi essayer ce code qui mettra directement à jour le TCD lorsque tu cliqueras sur l'onglet "Staff rempl." en question.

Private Sub Worksheet_Activate()
Dim PVi As PivotItem
On Error Resume Next
With Application
    .ScreenUpdating = False
        For Each PVi In Me.PivotTables("Tableau croisé dynamique1").PivotFields("date").PivotItems
            PVi.Visible = (CDate(PVi) >= Date)
        Next PVi
End With
End Sub

Code à placer dans la feuille "Staff rempl."

Pour l'onglet "Tous rempl.", même code à placer mais en changeant la réf du TCD --> Tableau croisé dynamique2

Si ok, n'oublie pas de cocher le V en vert pour cloturer le fil.

Amicalement

Edit Dan : Je vois qu'il y a de vieux items inutilisés dans tes TCD. Si souci, tu peux exécuter le code que j'ai placé dans ce lien --> https://forum.excel-pratique.com/excel/macro-modification-cellule-selon-critere-t12693-10.html

Salut,

C'est parfait, merci

Cordiales salutations

Adikt

Rechercher des sujets similaires à "tableau croise dynamique rendre invisible infos"