VBA / Automatisation de filtres TCD

  • Initiateur de la discussion Initiateur de la discussion FlorianQ
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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 😎


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...
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
252
  • Question Question
Microsoft 365 Probléme VBA
Réponses
8
Affichages
234
Retour