Filtrer date sur TCD VBA

Bonjour,

Je souhaiterais effectuer un filtre sur un tableau croisé dynamique en VBA.

Ce filtre doit se baser sur la date d’hier. C’est-à-dire J-1 tous les matins.

Je suis donc parti de la fonction date puis dateAdd

'Exemple

w = Date

MsgBox ("Date aujourd'hui : " & w)

Newdat = DateAdd("d", -1, Date)

MsgBox ("Date du filtre : " & Newdat)

Jusque là, il n’y a aucun problème.

Ensuite, j’effectue mon filtre sur le TCD :

Workbooks(fichier_prod).Worksheets("Recap ").Activate

ActiveSheet.PivotTables("Ecarts").PivotFields("Dte création").ClearAllFilters

ActiveSheet.PivotTables("Ecarts").PivotFields("Dte création"). _

PivotFilters.Add2 Type:=xlValueEquals, Value1:=Newdat

MsgBox ("Fin")

La derniére partie du code ne fonctionne pas car sur mon TCD il n’y a pas de filtre sur la date.

Pourriez-vous adapter mon code ou me donner plus d’explications svp ?

Bonjour,

Une proposition ?

Public Sub FilterData()
Dim pt As PivotTable
    Set pt = Worksheets("Recap ").PivotTables("Ecarts")
    With pt.PivotFields("Dte création")
        .ClearAllFilters
        .PivotFilters.Add2 Type:=xlDateYesterday
    End With
End Sub

Bonjour,

Cela ne fonctionne pas et il n'y a pas de message d'erreur.

image

Je vous remercie pour votre réponse; Auriez-vous d'autres pistes ?

RE,

Tes dates sont-elles des dates valides (nombre) ?

Cdlt.

Le format de cellule est sur "Date".

Je pense que je vais contourner ce problème en faisant une copie des données vers une autre feuille (collage spécial : valeurs) et je filtrerai sans passer par le TCD ?

Je cherche aussi des informations sur le filtre par date en VBA, il semblerait que ce soit complexe à utiliser.

Je me permets de relancer le sujet car je suis réellement coincé.

Est-qu'il faut que je change le format de mes dates ?

Bonjour,

Joins un petit fichier à ta demande pour une aide adaptée du forum.

Cdlt.

Rechercher des sujets similaires à "filtrer date tcd vba"