Suppression d'éléments d'un champ de tableau croisé dynamique
4 réponses
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.
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
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.
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" <quetzalNSPMcoatl@free.fr.invalid> a écrit dans le message de
news:uFn0iKm$EHA.2700@TK2MSFTNGP14.phx.gbl...
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.
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
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.
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
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.
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
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
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.
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
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 ;-)))
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 ;-)))
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 ;-)))
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
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
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" <quetzalNSPMcoatl@free.fr.invalid> a écrit dans le message de
news:OBFCLWy$EHA.2804@TK2MSFTNGP15.phx.gbl...
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
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
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
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
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 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''