OVH Cloud OVH Cloud

Suppression d'éléments d'un champ de tableau croisé dynamique

4 réponses
Avatar
Quetzalcoatl
Bonjour,

J'utilise EXCEL 2000 (sous WIN NT).
Je dispose sur une feuille de calcul d'un tableau croisé dynamique avec un champ
(liste déroulante).
Je peux afficher ou masquer des éléments de ce champ en cochant ou décochant la
case associée dans la liste déroulante.
Mais comment *supprimer* définitivement certains éléments ?
En effet, la liste conserve l'historique de tous les éléments créés lors des
diverses modifications des données à analyser, même ceux qui ont depuis été
supprimés de ces données.
Suis-je clair ? -;)
Merci d'avance pour toute aide sur le sujet.

--
Ite missa est

4 réponses

Avatar
denis P
Bonjour,
c'est un bug connu d'XL.
Pour supprimer les éléments "fantômes", fait tourner cette macro en activant
le classeur impliquer.
denis p.

'''''''''''''''''''''''''''''''''''''''
Option Explicit

Sub DeleteOldItemsWB()
'gets rid of unused items in PivotTable based on MSKB (Q202232)
'had to go through procedure twice to clear items (for i= 1 to 2)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer

On Error Resume Next
For i = 1 To 2
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
pi.Delete
Next
Next
pt.RefreshTable
Next
Next
Next
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
"Quetzalcoatl" a écrit dans le message de
news:uFn0iKm$
Bonjour,

J'utilise EXCEL 2000 (sous WIN NT).
Je dispose sur une feuille de calcul d'un tableau croisé dynamique avec un
champ

(liste déroulante).
Je peux afficher ou masquer des éléments de ce champ en cochant ou
décochant la

case associée dans la liste déroulante.
Mais comment *supprimer* définitivement certains éléments ?
En effet, la liste conserve l'historique de tous les éléments créés lors
des

diverses modifications des données à analyser, même ceux qui ont depuis
été

supprimés de ces données.
Suis-je clair ? -;)
Merci d'avance pour toute aide sur le sujet.

--
Ite missa est




Avatar
Quetzalcoatl
Merci bcp.
Microsoft dit que c'est un bug d'XL97, mais je le trouve dans XL2000, ils n'ont
pas corrigé ?!
Microsoft dit (voir ci dessous), c'est pareil ?

Sub Delete_Fields()
On Error Resume Next
For Each pvtfield In Worksheets("X").PivotTables("Y").PivotFields
For Each pvtitem In pvtfield.PivotItems
pvtitem.Delete
Next
Next
ActiveSheet.PivotTables("Y").RefreshTable
End Sub

Bonjour,
c'est un bug connu d'XL.
Pour supprimer les éléments "fantômes", fait tourner cette macro en activant
le classeur impliquer.
denis p.

'''''''''''''''''''''''''''''''''''''''
Option Explicit

Sub DeleteOldItemsWB()
'gets rid of unused items in PivotTable based on MSKB (Q202232)
'had to go through procedure twice to clear items (for i= 1 to 2)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer

On Error Resume Next
For i = 1 To 2
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
pi.Delete
Next
Next
pt.RefreshTable
Next
Next
Next
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


--
Do widzenia

Avatar
Quetzalcoatl
Merci bcp.
J'ai pas tout compris :
- comment fait-on pour afficher la liste des champs disponibles ?
- comment fait-on pour "drag the pivot field out of the pivot table. (Sortir
le(s) "PivotItem" vers la liste des champs dispo)" ?

Merci d'avance.

-----------
Debra Dalgleish http://www.contextures.com/xlPivot04.html
propose entre autres une méthode sans macro ;-)))
Avatar
denis P
For Each pvtfield In Worksheets("X").PivotTables("Y").PivotFields
.....
c'est pareil dans le principe...
La différence dans l'exemple de MS, la maco nettoie le TDC Y dans le
classeur X.
Ma maco nettoie tout les TDC du classeur actif
salutations
denis p.


"Quetzalcoatl" a écrit dans le message de
news:OBFCLWy$
Merci bcp.
Microsoft dit que c'est un bug d'XL97, mais je le trouve dans XL2000, ils
n'ont

pas corrigé ?!
Microsoft dit (voir ci dessous), c'est pareil ?

Sub Delete_Fields()
On Error Resume Next
For Each pvtfield In Worksheets("X").PivotTables("Y").PivotFields
For Each pvtitem In pvtfield.PivotItems
pvtitem.Delete
Next
Next
ActiveSheet.PivotTables("Y").RefreshTable
End Sub

Bonjour,
c'est un bug connu d'XL.
Pour supprimer les éléments "fantômes", fait tourner cette macro en
activant


le classeur impliquer.
denis p.

'''''''''''''''''''''''''''''''''''''''
Option Explicit

Sub DeleteOldItemsWB()
'gets rid of unused items in PivotTable based on MSKB (Q202232)
'had to go through procedure twice to clear items (for i= 1 to 2)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer

On Error Resume Next
For i = 1 To 2
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
pi.Delete
Next
Next
pt.RefreshTable
Next
Next
Next
End Sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


--
Do widzenia