Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro Filtre Date dans TCD

alex67800

XLDnaute Impliqué
Bonjour tout le monde,
Cela fait longtemps que je ne suis plus venu, mais reste malgré tout fidèle.

J'ai beau parcourir les nombreux fils qui traite du sujet, mais je ne trouve pas ce qui correspond à mon besoin, même en y adaptant les codes proposés, aussi je fais appel à vos conseils avisés.

J'ai un onglet qui comprend plusieurs TCD, je souhaiterai filtrer ces données par mois/année, alors que les données elles sont sous la forme jj/mm/aaaa" "hh\:mm\:ss (extraction auto d'un ERP) , donc déjà un premier problème.
Pour simplifier l'opération, je saisi une date en D4 (ex: 01/02/16) sous la forme mm/aa, et souhaite que la macro applique ce filtre directement sur tout les TCD présent sur la feuille.
J'ai changé le format date de l'onglet source, j'ai essayé CDATE, NumberFormat dans le code,mais rien y fait, j'avoue là que je suis un peu perdu

Quand je fais un copier/coller de la cellule D4 dans le filtre date, ça marche. J'ai bien essayé l'enregistreur de macro pour comprendre le raisonnement, mais inexploitable pour coder ce que je souhaite faire.

Je ne sais pas si je suis suffisement clair, aussi je vous joint le fichier concerné, avec une macro que j'ai trouvé sur le forum, dont j'ai légèrement modifié le code, mais visiblement cela ne fonctionne pas.
Je vous joint le code
Code:
Sub MasqueDates()
Dim p As PivotItem
Application.ScreenUpdating = False
With ActiveSheet.PivotTables(1).PivotFields("Date")
    For Each p In .PivotItems
        p.Visible = True
    Next p
    For Each p In .PivotItems
        If p.Value <> Range("D4").Value Then
            If .VisibleItems.Count > 1 Then
                p.Visible = False
            Else
                AfficheToutesDates
                MsgBox "Aucun élément à afficher pour la période!": Exit Sub
            End If
        End If
    Next p
End With
Application.ScreenUpdating = True
End Sub

Sub AfficheToutesDates()
Dim p As PivotItem
Application.ScreenUpdating = False
With ActiveSheet.PivotTables(1).PivotFields("Date")
    For Each p In .PivotItems
        p.Visible = True
    Next p
End With
Application.ScreenUpdating = True
End Sub

Document Cjoint
Si vous pouviez m'éclairer sur ce sujet, je vous en remercie par avance
 
Dernière édition:

chris

XLDnaute Barbatruc
Re : Macro Filtre Date dans TCD

Bonjour

Place ta date en étiquette de ligne puis clic droit sur une date, grouper, Année et mois.

Replace ensuite les champs années et Date en filtre si tu le souhaites mais tu peux aussi associer un segment Année et un segment Mois à ton TCD pour faciliter le filtre... en gardant ou non ces champs dans le TCD

Edit : ton profil indique 2003 et ton message 2010 : penser à modifier ton profil si tu es passé à 2010.
 

alex67800

XLDnaute Impliqué
Re : Macro Filtre Date dans TCD

Bonsoir Chris,
Merci, c'est pas mal du tout, en plus sans macro. Par contre je ne comprend pas pourquoi, quand je créé un segment à partir du premier TCD et clic dans connexions de tableau dynamique, les autres TCD ne sont pas présent?
Mais quand je fais la même manipulation à partir du TCD situé en-dessous, il me propose tout les TCD du fichier, sauf le premier?
Aurais-tu une idée?

A te lire.

Concernant mon profil, il est juste, sauf que pour cette application, c'est pour le boulot, et là je suis sur une autre version.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…