Nettoyer la “cache” des tableaux croisés dynamiques 6


Avez-vous déjà vécu la situation où votre tableau croisé dynamique affiche une valeur qui ne devrait pas se trouver dans vos données? Si oui, sachez qu'il s'agit d'un problème de mémoire cache des tableaux croisés dynamiques (TCD). Et que l'on peut facilement y remédier grâce à VBA.

Résoudre le problème de "mémoire cache" des TCD

Il arrive qu'après un certain temps et après des manipulations des données, le tableau croisé dynamique affiche des valeurs qui ne devraient plus y figurer. Ceci est surtout vrai lorsque vous travaillez avec les "Pivot tables" via VBA. Lors de l'énumération des champs et des valeurs disponibles (par ex. en créant un filtre du champ), les anciennes valeurs (déjà éffacées) peuvent resurgir. Ce qui est assez ennuyeux et peut même être dangereux (cela peux biaiser les résultats de vos calculs).

Il n'est pas très connu que les Tableaux croisés dynamiques ont leur propre mémoire cache qui peut, avec temps, devenir problématique.

Le code qui suit "nettoie" tous les tableaux croisés dynamiques dans le Workbook. N'hésitez pas à l'utiliser au cas où vous construisez ou manipulez ces tableaux via le code VBA.

Code VBA pour nettoyer la mémoire cache des tableaux croisés dynamiques

La procédure VBA qui suit fait une boucle dans tous les tableaux croisés dynamiques dans le Classeur et vide leur mémoire cache. Le code est prêt à l'emploi – il vous suffit de le copier & coller dans votre projet.

Pour aller plus loin

12 0



Partagez cette page...
Share on FacebookShare on Google+Share on LinkedInTweet about this on TwitterShare on RedditShare on TumblrDigg thisEmail this to someone

Laissez un commentaire

Votre adresse de messagerie ne sera pas publiée.

6 commentaires sur “Nettoyer la “cache” des tableaux croisés dynamiques

  • Bory

    Bonjour,

    J'ai essayé de mettre ce code dans mon fichier mais cela me bloque à la ligne ".refresh" j'ai une erreur 1004.
    Je ne comprends pas pourquoi :'(
    Je suis sous office 2016, peut-être que c'est la raison ?

    • excel-malin.com Auteur du billet

      Bonjour Bory,
      je viens de tester le code dans Excel 2016 et il fonctionne correctement.

      Par contre j'ai réussi à reproduire cette erreur: elle survient lorsqu'une Feuille qui contient le (un des) tableaux croisés dynamiques est protégé par le mot de passe.
      C'est peut-être le cas dans votre fichier?
      Assurez vous que toutes les Feuilles de votre Classeur soient disponibles (= pas protégées).

      J'espère que ma réponse vous aidera. Bien à vous, Martin

      • Bory

        Bonsoir Martin,

        Bizarre, je n'ai aucune protection de la feuille. Les particularités avec les TCDs que j'utilise dans ce fichier sont :
        – L'utilisation d'un add-on logiciel appelé MicroStrategy qui me créé mes TCDs dans le fichier excel
        – L'utilisation d'une option lors de la création du TCD qui me permet de faire un count distinct :/

        Cordialement