Nettoyer le “cache” des tableaux croisés dynamiques (TCD)
Si jamais votre tableau croisé dynamique affiche une valeur qui ne devrait pas s’y trouver, c’est que vous êtes victime d’un problème de mémoire cache. En effet, il arrive qu’après des manipulations de données, le tableau croisé dynamique affiche des valeurs qui ne devraient plus y figurer. Lors de la création d’un segment par exemple, d’anciennes valeurs (déjà effacées) peuvent apparaître en tant que valeurs de filtre.
Ayant été confronté à ce problème et fait mes recherches, je vous propose de solutionner ce problème en utilisant une macro VBA.
Résoudre le problème de « mémoire cache » des TCD
Les Tableaux croisés dynamiques ont leur propre mémoire cache. Il suffit d’un petit peu de code VBA à rattacher à un bouton par exemple « Nettoyer le Cache » pour nettoyer correctement le cache des Tableaux Dynamiques Croisé (TCD)
Vous pouvez aussi appelez ce code si vous manipulez des tableaux croisés dynamique en VBA.
Code VBA pour nettoyer la mémoire cache des tableaux croisés dynamiques
La procédure VBA suivante boucle sur tous les tableaux croisés dynamiques du Classeur et vide la mémoire cache de chacun des TCD.
Nettoyage mémoire Cache des Tableaux croisés dynamiques (Pivot tables) VBA Sub cleanTCDCache() On Error GoTo Erreur Dim TabPivot As PivotTable Dim F As Worksheet For Each F In ActiveWorkbook.Worksheets For Each TabPivot In Feuille.PivotTables With TabPivot .MissingItemsLimit = xlMissingItemsNone .Refresh End With Next TabPivot Next F Set TabPivot = Nothing Set F= Nothing Exit Sub Erreur: MsgBox "Une problème est survenu lors du nettoyage du cache TCD..." End Sub