VBA / Automatisation de filtres TCD

FlorianQ

XLDnaute Nouveau
Bonjour le forum,

Je crée une nouvelle discussion car je suis en face d'un nouveau problème.
Je dispose à l'heure actuelle d'environ 20 TCD (et il tend a il y en avoir de plus en plus) et en vue de les exporter périodiquement, je voulais faciliter la modification des filtres en ne les changeant qu'une fois pour tous les TCD. J'ai plusieurs filtres sur mes TCD mais il y en a principalement deux que j'aimerai changer à chaque fois, j'ai donc créé une liste déroulante de mes différentes options et lors de la sélection d'une entrée, je souhaitais que mes TCD se mettent à jour.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("B3:C3")) Is Nothing Or Target.Cells.Count > 2 Then Exit Sub
    Dim Sh As Worksheet, Pt As PivotTable
    For Each Sh In Worksheets
        For Each Pt In Sh.PivotTables
            With Pt.PivotFields("Agence")
                .CurrentPage = Range("$B$3").Value
            End With
            With Pt.PivotFields("UC")
                .CurrentPage = Range("$C$3").Value
            End With

        Next Pt
    Next Sh
End Sub

J'obtiens l'erreur suivante "Impossible de définir la propriété CurrentPage de la classe PivotField". Je vous ai joint une base factice pour un peu mieux cerner le problème. Je constate que sur cette base lorsque que je change l'agence, même si j'ai le message d'erreur, les filtres se mettent à jours. Ce n'est pas le cas sur mon fichier d'origine.

Merci d'avance en espérant avoir été assez précis.
 

Pièces jointes

  • Macro Test.xlsm
    23.6 KB · Affichages: 52
  • Macro Test.xlsm
    23.6 KB · Affichages: 46

FlorianQ

XLDnaute Nouveau
Re : VBA / Automatisation de filtres TCD

Bonjour le forum, bonjour Chris

Alors après vérification, le second bloc "with" ne semblait pas s'exécuter, et c'était en fait une erreur de synthaxe dans mon code, erreur humaine, donc... :(

Problème résolu ! Merci énormément :cool:


Et sinon, plutot qu'ouvrir un nouveau sujet, je pense que je suis presque au but mais j'ai un problème avec le code suivant
Code:
ActiveSheet.ChartObjects("GraphiqueBulle").Activate
ActiveChart.ChartArea.Copy
With ActiveChart
    CC.Sheets("SAIN (CC)").Activate
    CC.Sheets("SAIN (CC)").Range("H80").Activate
    ActiveChart.Paste
End With
Application.ScreenUpdating = True
End Sub

Il s'agit de la fin de ma macro. Je travaille dans un classeur source (CS), et à l'aide de cette macro, j'ouvre un classeur cible (CC) puis je copie plusieurs tableaux croisés dynamiques, et je cherchais à copier un graphique. Ce qui ce passe est que j'ai une erreur à la dernière ligne, et je supposais que vu que j'active un autre classeur, mon graphique ne peut plus être considéré comme actif et ne peut donc pas être collé. Si je fais ctrl+V après l'erreur le graphique se colle parfaitement, je n'arrive donc pas à adapter ces quelques lignes de code...
 

Discussions similaires

Réponses
14
Affichages
387
Compte Supprimé 979
C
Réponses
1
Affichages
168

Statistiques des forums

Discussions
312 231
Messages
2 086 443
Membres
103 211
dernier inscrit
pierrecharbs