TCD : Changement automatique du filtre "mois"

Bonjour,

Je bloque sur un petit problème que je pense assez basique. Votre aide me serait très utile.

J'ai créé un excel pour la gestion de mon budget avec la somme des débit et des crédits classées en catégorie selon leurs dates.

Ensuite j'ai activé un TCD dans la feuille "B" reprenant la somme des débits selon la catégorie.

Dernièrement j'ai groupé les dates en années et mois dans un filtre.

Dans une macro, j'actualise automatiquement le TCD dès que j'ouvre la feuille "B".

Par contre, j'aimerais que les filtres "mois" et "année" changent automatiquement en fonction du mois et année en cours.

Pouvez-vous m'aider ? Merci,

Je joins le fichier excel

Bonjour trokapuce,

edit-

Essaie çà ?

Quand j'ai créé mon TCD j'ai inséré le champ "date" dans "étiquette de ligne" puis j'ai groupé les dates en mois et année.

Ensuite j'ai glissé les deux dans "filtre" pour pouvoir choisir un mois et une année spécifique.

Merci pour ta réponse. J'ai un message d'erreur quand j'ouvre la feuille "B" :

"Erreur 1004: Impossible de définir la propriété visible de la classe Pivot Item"

J'ai édité mon email 2fois, tu as bien téléchargé la dernière version du fichier ?

J'ai téléchargé ma pièce jointe et pourtant tout semble fonctionner.

Le beug dont tu me parles je le connais bien, le TCD ne reconnaît pas le mois où l'année en cours dans les pivots disponibles, ce qui fait que l'ensemble des pivots se retrouve désactivé, et comme un TCD a forcément au moins un pivot, au moment de désactiver le dernier le programme se met à beuger.

C'est pour cette raison que le programme commence par activer tous les pivots et qu'ensuite seulement il réaliste les tests, ce qui nous assure d'avoir toujours un pivot d'activé. C'est étonnant que çà ne marche pas chez toi. C'est au niveau du mois que çà beug ?

Merci beaucoup pour ton aide.

J'ai bien téléchargé le dernier fichier. A chaque ligne ou "a.Visible" est présent, il y a un bug.

Tu utilises le programme dans un autre fichier que celui que je t'ai envoyé où pour l'instant tu test celui-ci dans la pièce jointe ?

Donc pour toi çà beug à la ligne 13 c'est çà ?

Est-ce que c'est lié à la version d'excel... je suis en 2013 et toi 2007

J'utilise bien la version de ta pièce jointe.

Je suis sur excel 2007, je vais essayer sur Excel 2013 et je te tiens au courant

Le fichier fonctionne bien sous Excel 2013 mais pas sur le 2007.

Je vais chercher sur internet la raison.

En tout cas, merci

Je n'ai pas 2007 chez moi donc difficile de corriger.

Peut-être essaie de remplacer Dim a As PivotItem par Dim a As Variant.. avec un peu de chance.

Toujours le même problème

bonjour

essaye en supprimant mois et année dans les filtres de ton TCD, rajoutant Date dans les Lignes du TCD, puis en faisant un clic droit sur une cellule de date du TCD filtrer "mois en cours"

je ne sais pas automatiser la mise à jour du TCD par une macro, actualiser manuellement

Justement je voudrais que ça s'actualise automatiquement par macro.

Comme je prévois de faire plusieurs TCD, si je dois à chaque fois actualiser à la main, cela n'est pas très ergonomique

re

lance l'enregistreur de macrova sur sur le 1er TCD et actualise, va sur un autre TCD, actualise, va sur un 3è TCD, acutalise etc.

stoppe l'enregistreur

affecte ta macro à l'ouverture du classeur, un truc du genre

Private Sub Workbook_Open()
          Nom_de_ta_macro
End Sub

Bonjour,

Ma contribution à tester.

Cdlt.

Option Explicit

Private Sub Worksheet_Activate()
    Me.PivotTables(1).PivotCache.Refresh
    ActualYearAndMonth
End Sub

Private Sub ActualYearAndMonth()
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim strYear As String, strMonth As String

    Application.ScreenUpdating = False

    strYear = CStr(Year(Date))
    strMonth = Choose(Month(Date), _
        "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")

    Set pt = Me.PivotTables(1)
    pt.ManualUpdate = True
    For Each pf In pt.PageFields
        pf.ClearAllFilters
    Next
    With pt.PageFields("Années")
        For Each pi In .PivotItems
            If pi.Name <> strYear Then
                pi.Visible = False
            End If
        Next pi
    End With
    With pt.PageFields("Date")
        For Each pi In .PivotItems
            If pi.Name <> strMonth Then
                pi.Visible = False
            End If
        Next pi
    End With
    pt.ManualUpdate = False

    Set pt = Nothing

End Sub

Voici la version Excel2007.

Merci pour vos contributions. Les 2 fichiers Excel fonctionnent parfaitement

Rechercher des sujets similaires à "tcd changement automatique filtre mois"