MAJ TCD filtre date automatique

Bonjour,

Tous les mois, j'ai un TCD qui me permet de suivre la production. En fin de mois je l'envoi par mail et je re paramètre les filtres dates pour le mois à venir. J'aimerai que la période ce redéfinisse automatiquement à l'issu de l'envoie du mail.

Ce matin, j'ai fait avec l'enregistreur macro ceci

Range("A6").Select
 ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("DATE"). _
 ClearAllFilters
 ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("DATE"). _
 PivotFilters.Add2 Type:=xlDateBetween, Value1:="01/08/2020", Value2:= _
 "31/08/2020"

Je me demande comment je dois faire pour automatiser les dates début et fin de mois ? De ce que je comprends, il faut qu'elles soient en format texte?

Merci de vos lumières

Leakim

Salut leakim,

Rien ne t'empêche de faire quelque chose comme:

D1 = DateSerial(Year(Date), Month(Date) + 1, 1)
D2 = DateSerial(Year(Date), Month(Date) + 2, 1) - 1
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Date commande").PivotFilters.Add Type:=xlDateBetween, Value1:= _
        "" & D1, Value2:="" & D2

... si j'ai bien compris !?

Re,

Oui t'as tout compris sauf que j'ai toujours une erreur de format de date

J'ai essayé en passant par Cstr avant la date selon des exemple que j'ai trouvé mais il y a bug

Voilà où j'en suis

D1 = CStr(DateSerial(Year(Date), Month(Date) + 1, 1))
D2 = CStr(DateSerial(Year(Date), Month(Date) + 2, 1) - 1)
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("DATE") _
    .PivotFilters.Add Type:=xlDateBetween, Value1:= _
    """& D1 &""", Value2:="""& D2 &"""

Leakim

Bonjour,

si tu passes des chaines tu n'as pas besoin de remettre des " " :

    ActiveSheet.PivotTables("Tableau croisé dynamique23").PivotFields("date"). _
        PivotFilters.Add2 Type:=xlDateBetween, Value1:=D1, Value2:=D2

devrait suffire.

Tu as aussi :

    ActiveSheet.PivotTables("Tableau croisé dynamique23").PivotFields("date"). _
        PivotFilters.Add2 Type:=xlDateThisMonth

ou xlDateNextMonth, xlDateLastMonth
eric

Salut,

Désolé pour mon temps de réponse... à ce Covid...

J'ai un bug 1004 sur ta dernière proposition Eriiic ?

Au survol j'ai une lecture de xldatethismonth = 44 ?

Je joins le fichier et pour lancer la macro il faut cliquer sur l'enveloppe orange

D'avance merci

Bonjour,

Essaie ainsi :

Sub Macro1()
    With ActiveSheet.PivotTables(1).PivotFields("DATE")
        .ClearAllFilters
        .PivotFilters.Add Type:=xlDateLastMonth    '45
    End With
End Sub

Bonjour à tous,

tu as déjà un filtre appliqué sur Juin.
Si tu lui demandes xlThisMonth (août) ou xlLastMonth (Juillet) il ne trouve rien d'où l'erreur.
Supprime les filtres avant :

    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("DATE"). _
        ClearAllFilters

Ajoute quand même une gestion d'erreur si qq'un clique et qu'il n'y encore aucune saisie sur le mois demandé.
eric

Edit: Ah, je n'avais pas tout lu de la réponse de jean-eric. Il efface aussi le filtre sur les dates.
A voir si tu en as d'autres à supprimer aussi

Bonjour,

Petite insomnie caniculaire

J'ai pris un peu de temps pour appliquer vos recommandations.

Je vous remercie car je n'avais pas connaissance des paramétrages xlDateNextMonth, xlDateThisMonth, xlDateLastMonth.

C'était bien le clearAllfiltrer que j'avais pas remis et qui me manquait ! J'y ai ajouté une gestion des erreurs et des alertes et cela se passe nickel.

Merci à vous !

Leakim

Rechercher des sujets similaires à "maj tcd filtre date automatique"