Macro Maj filtre TCD

Bonjour

J'ai créé une macro pour mettre à jour des mois dans deux filtres d'un même tableau croisé dynamique.

Je sollicite votre aide car je bloque pour finir cette macro.

Je décris mon pb :

L'utilisateur saisit un mois dans un msgbox. J'ai déclaré ce mois en tant que variable.

1er filtre du TCD : la macro doit prendre la valeur exacte de ma variable et ça à l'air de fonctionner .

2nd filtre du TCD qui pose pb : je voudrais que les mois > au mois saisi par l'utilisateur ne soient pas sélectionnés dans le filtre par la macro. Donc par exemple, si on saisit 3 dans la msgbox, seuls les mois 1 à 3 doivent être pris par la macro et pas les autres.

Merci infiniment pour votre aide

Ci-joint le fichier

92test.xlsm (23.55 Ko)

Complément d'information :

L'objectif de ce second filtre est de faire le point sur les commandes <= au mois saisi dans la msgbox et qui ne sont pas toujours pas soldées à la fin de ce mois saisi dans la msgbox.

merci beaucoup pour votre aide

Bonjour,

Essaie ainsi :

Option Explicit

Public Sub DEMO()
Dim ws As Worksheet
Dim pt As PivotTable, pi As PivotItem
Dim sMonth As String

    sMonth = InputBox("Entrer le mois de Cloture ?")
    If sMonth = "" Then Exit Sub

    Application.ScreenUpdating = False
    Set ws = ActiveWorkbook.Worksheets("TCD")
    Set pt = ws.PivotTables(1)
    pt.PivotCache.Refresh

    With pt.PageFields("Mois de Cloture")
        .ClearAllFilters
        .CurrentPage = sMonth
    End With

    With pt.PageFields("Mois de Livraison Commande")
        .ClearAllFilters
        For Each pi In .PivotItems
            If pi.Value > CLng(sMonth) Then pi.Visible = False
        Next
    End With

    Set pt = Nothing: Set ws = Nothing

End Sub

Bonjour Jean-Eric,

Merci beaucoup pour cette réponse rapide et qui ne fonctionne super bien.

J'ai bien fait de poster mon pb.

Jusqte une question pour ma compréhension.

Que veut dire l'expression : Set pt = Nothing: Set ws = Nothing

Pourquoi tu la mets à la fin de la macro ?

Re,

On réinitialise les variables (on vide la mémoire).

Cdlt.


Re,

On réinitialise les variables (on vide la mémoire).

Cdlt.

ok je vais mettre cette macro à l'intérieur d'une autre procédure pour saucissonner le tout

merci pour ton aide

bonne journée

Bonjour à tous

En utilisant les possibilites du TCD

89test-tcd.xlsm (31.98 Ko)

bonjour

quelles sont ces possibilités ?

je n'ai pas bien compris la réponse.

merci

Re,

De toute façon, l'option proposée n'est pas supportée par Excel 2007.

Cdlt.

Bonjour,

Je reviens sur ce post pour un complément.

En effet, je souhaiterais savoir comment modifier le code vba initital qui avait été conçu pour un seul tcd.

Car j'ai ajouté une seconde feuille "TCD2" dans laquelle j'ai maintenant un autre tcd presque identique au 1er TCD.

Ce second TCD n'a qu'un seul filtre.

J'aimerais que la macro balaye les deux tcd se trouvant dans les deux feuilles, les actualise et mette à jour les filtres des 2 TCD.

Merci beaucoup pour votre aide.

Cordialement

38test.xlsm (25.24 Ko)

Bonjour,

essaie ainsi.

Cdlt.

Public Sub DEMO()
Dim ws As Worksheet
Dim pt As PivotTable, pi As PivotItem
Dim sMonth As String

    sMonth = InputBox("Entrer le mois de Cloture ?")
    If sMonth = "" Then Exit Sub

    Application.ScreenUpdating = False
    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> "Donnees" Then
            Set pt = ws.PivotTables(1)
            pt.PivotCache.Refresh
            With pt.PageFields("Mois de Cloture")
                .ClearAllFilters
                .CurrentPage = sMonth
            End With
            On Error Resume Next
            With pt.PageFields("Mois de Livraison Commande")
                .ClearAllFilters
                For Each pi In .PivotItems
                    If pi.Value > CLng(sMonth) Then pi.Visible = False
                Next
            End With
            On Error GoTo 0
        End If
    Next ws

    Set pt = Nothing

End Sub

Super, ça fonctionne parfaitement.

Merci infiniment.

Très bonne journée

cordialement

Re,

Merci pour tes remerciements.

A bientôt.

Rechercher des sujets similaires à "macro maj filtre tcd"