Effacer les éléments anciens d’un TCD

(Last Updated On: 18 octobre 2017)

Après avoir modifié les données source d’un tableau croisé dynamique, des éléments anciens peuvent encore apparaître dans les menus déroulants du TCD ou dans les filtres des segments. Les instructions ci-dessous vous aideront à effacer ces éléments.

Lorsque vous créez un tableau croisé dynamique, Excel fait une copie de vos données source et les stocke en mémoire – cela crée une copie en cache. Le tableau croisé dynamique est alors lié à la copie plutôt qu’aux données d’origine.

Il arrive que le tableau croisé dynamique affiche des valeurs qui ne devraient plus y figurer, ce qui peut induire des erreurs dans vos rapports.

Voici la macro VBA à copier-coller directement dans un module de votre classeur Excel (Onglet Développeur -> Visual Basic) pour nettoyer le cache de tous les TCD du classeur :

Sub NettoyerCacheTCD()
‘ XL Business Tools ( http://xlbusinesstools.com)

On Error GoTo Erreur
‘ Nettoie les valeurs ‘fantômes’ d’un TCD
Dim TCD As PivotTable, SH As Worksheet

For Each SH In ThisWorkbook.Sheets
For Each TCD In SH.PivotTables
With TCD.PivotCache
.MissingItemsLimit = xlMissingItemsNone
.Refresh
End With
Next TCD
Next SH

Set TCD = Nothing: Set SH = Nothing
Exit Sub

Erreur:
MsgBox “Une erreur est survenue.”, vbCritical
End Sub

  1. Retournez dans Excel -> Onglet Développeur -> Visual Basic -> Macro
  2. Exécutez NettoyerCacheTCD

Et voilà, si vous rencontrez un problème de mémoire cache dans un TCD, il vous suffit d’exécuter cette petite macro VBA pour y remédier efficacement 😉

 

Souscrivez à ma newsletter :

10 commentaires

  1. Reichenbach Jacques dit

    Bonjour,
    Il est plus simple de modifier dans les options du tableau croisé dynamique:
    1. Choisir l’onglet “Données”
    2. Sous “Conserver les éléments supprimés de la source de données, choisir dans le dropdown “aucun”
    3. Fermer la fenêtre des options sur OK
    4. Actualiser le TCD et toutes les anciennes données qui ne sont plus dans le fichier source n’apparaitront plus dans le tableau ou les segments

    • Marc dit

      Malheureusement, votre solution ne fonctionne pas systématiquement (je le sais, je l’ai déjà utilisée…) sans que je sache pourquoi. La macro de nettoyage semble fonctionner dans tous les cas.

      Marc

  2. Marc dit

    Simple et efficace ! Pas de blabla, sujet bien posé et bien traité. Moi qui peste souvent contre les développements verbeux, parfois à coté du sujet, là je dis bravo.

    Merci infiniment !

    Marc

  3. Thomas B dit

    Bonjour,
    Ceci ne semble pas fonctionner pour les TCD réalisés à partir d’un modèle de données (données chargées via power query). Confirmez-vous cela ? Avez une solution dans ce cas ?

  4. Thomas B dit

    Bonjour,
    Ceci ne semble pas fonctionner pour les TCD réalisés à partir d’un modèle de données (données chargées via power query). Confirmez-vous cela ? Avez une solution dans ce cas ?

    Merci par avance.

    Thomas

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *