IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Actualiser tous les graphiques d'un TCD SANS ActiveWorkbook.RefreshAll


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier Avatar de ThomasRC
    Homme Profil pro
    Data analyst
    Inscrit en
    Octobre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data analyst
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2021
    Messages : 7
    Par défaut Actualiser tous les graphiques d'un TCD SANS ActiveWorkbook.RefreshAll
    Bonjour à tous

    Je dois améliorer un code VBA dont le but est d'actualiser les données d'un onglet alimentant des TCD et des graphiques liés aux TCD.

    Il y a beaucoup de données et de TCD/Graphiques de TCD, ce qui fait que le code peut mettre 20-30mn à tourner.

    Nous avons remarqué que ce qui prend du temps dans le code VBA est le "rafraîchissement" des TCD et graphiques de TCD.

    Le simple fait de remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.RefreshAll
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Windows("box reporting TEST.xlsx").Activate
       Dim tblPivot As PivotTable
     For Each tblPivot In ActiveWorkbook.PivotTables
         tblPivot.RefreshTable
         tblPivot.Update
      Next tblPivot
     
      ActiveWorkbook.RefreshAll
    (Donc traiter en amont l'actualisation des TCD avant de tout rafraîchir) avait divisé le temps de traitement par deux.

    On essaie -en vain pour l'instant- de trouver l'équivalent de la formule ci-dessus pour mettre à jour tous les graphiques et ne plus utiliser le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveWorkbook.RefreshAll
    On a tenté cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim chr As ChartObject
       For Each chr In ActiveWorkbook.ChartObjects
      chr.PivotLayout.PivotTable.PivotCache.Refresh
       Next chr
    Mais on se retrouve avec une erreur 438 sur la ligne " For Each chr In ActiveWorkbook.ChartObjects"

    Si vous avez une solution, nous serions preneurs

    Merci à vous pour votre aide,

    Thomas

  2. #2
    Membre régulier Avatar de ThomasRC
    Homme Profil pro
    Data analyst
    Inscrit en
    Octobre 2021
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Data analyst
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2021
    Messages : 7
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       For Each it In ActiveSheet.ChartObjects
            it.Chart.PivotLayout.PivotTable.PivotCache.Refresh
        Next
    Solution trouvée

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VBA-E supprimer tous les graphique d'une feuille
    Par ferronimus dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/04/2009, 19h01
  2. Actualiser tous les formulaires ouverts
    Par baila dans le forum VBA Access
    Réponses: 5
    Dernier message: 28/01/2008, 13h12
  3. Réponses: 14
    Dernier message: 25/11/2007, 18h32
  4. selectionner tous les graphiques d'une feuil excel
    Par veer2006 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/07/2007, 14h30
  5. Traiter tous les fichiers d'un répertoir sans les MFC.
    Par radicalrider dans le forum MFC
    Réponses: 12
    Dernier message: 21/06/2006, 17h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo