OVH Cloud OVH Cloud

Purger un tableau dynamique

5 réponses
Avatar
Pyanepsion
J'ai procédé à des essais avec un tableau dynamique. Dans la zone de saisie
des données j'ai rajouté des données fictives. Elles sont alors apparues,
normalement dans le rapport du tableau dynamique. Puis j'ai supprimé les
données fictives.

Elles figurent toujours dans le tableau. Dans l'immédiat pour qu'elle
n'apparaissent pas j'ai du cliquer sur le nom dans le tableau et décocher les
valeurs fictives en trop.

Comment les retirer définivement ?

Merci à tous.

5 réponses

Avatar
Garette
Bonsoir,

Il faut aller dans le menu Données/Actualiser les Données ou cliquer sur le
point d'exclamation rouge de la barre d'outils Tableau croisé dynamique ?...
Avatar
AV
Comment les retirer définivement ?


Sub zz_Sup_Items_Fantômes()
On Error Resume Next
For Each pivotT In ActiveSheet.PivotTables
For Each pivotF In pivotT.PivotFields
For Each pivotI In pivotF.PivotItems
pivotI.Delete
Next
Next
pivotT.RefreshTable
Next
End Sub

AV

Avatar
Pyanepsion

Bonsoir,

Il faut aller dans le menu Données/Actualiser les Données ou cliquer sur le
point d'exclamation rouge de la barre d'outils Tableau croisé dynamique ?...
C'est bien sûr ce que j'ai fait.


Excel garde les anciennes données et met à jour les autres. Peut-être que ça
a une importance ? Il s'agit de Excel 2000.

Avatar
Céline Brien
Bonjour,
Codes ci-dessous.
Céline
-------------------
Sub DeleteOldItemsInPivotTable()
'gets rid of unused items in PivotTable
' based on MSKB (202232)
' Désactiver l'actualisation de l'écran (exécution plus rapide de la macro)
Application.ScreenUpdating = False
' Désactiver le calcul automatique
Application.Calculation = xlManual
Application.CalculateBeforeSave = False
' Déclarer les variables
Dim WS As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer
' Supprimer les éléments de tous les champs, de tous les tableaux croisés
dynamiques
On Error Resume Next
For Each WS In ActiveWorkbook.Worksheets
For Each pt In WS.PivotTables
pt.RefreshTable
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
If pi.RecordCount = 0 And Not pi.IsCalculated Then
pi.Delete
End If
Next
Next
Next
Next
' Activer l'actualisation de l'écran
Application.ScreenUpdating = True
' Activer le calcul automatique
Application.Calculation = xlAutomatic
Application.CalculateBeforeSave = True
Msg = Msg & "La macro est terminée !"
MsgBox Msg, vbInformatin, "Rafraîchir les listes déroulantes des tableaux
croisés dynamiques"
End Sub

-------------------------------------------
"Pyanepsion" a écrit dans le message
de news:
J'ai procédé à des essais avec un tableau dynamique. Dans la zone de
saisie
des données j'ai rajouté des données fictives. Elles sont alors apparues,
normalement dans le rapport du tableau dynamique. Puis j'ai supprimé les
données fictives.

Elles figurent toujours dans le tableau. Dans l'immédiat pour qu'elle
n'apparaissent pas j'ai du cliquer sur le nom dans le tableau et décocher
les
valeurs fictives en trop.

Comment les retirer définivement ?

Merci à tous.


Avatar
Pyanepsion
Merci Celine et AV. Vous me conseillez donc d'utiliser du script. Je ne sais
malheureusement pas comment faire !