Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Wertfelder aus Pivottabelle entfernen
31.10.2018 16:04:21
Tobi
Hallo VBA-Experten,
eine Frage: Ich möchte per VBA-Code alle Wertfelder auch die berechneten aus einer Pivottabelle "löschen". Der untenstehende Code schafft das auch, allerdings lässt er immer ein Wertelement in der Pivottabelle stehen. Könnt ihr mir dabei helfen?
Private Sub DatenFelderHerausnehmen()
Dim pi As PivotItem
Dim pf As PivotField
Dim ptBeispielpivot As PivotTable
Set ptBeispielpivot = Sheets("Pivot_combined").PivotTables("PivotTable1")
With ptBeispielpivot
.DataLabelRange.Delete
End With
End Sub

2. Variante ist folgende:
Public Sub tr()
Dim pf                        As PivotField
For Each pf In ActiveSheet.PivotTables(1).DataFields
pf.Orientation = xlHidden
Next pf
End Sub
Hier ist aber das Problem, dass berechnete Felder stehenbleiben, bzw. nur bis zum ersten berechneten Feld "gelöscht" wird.
Vielen Dank für die Mühe!
Grüße
Tobi

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wertfelder aus Pivottabelle entfernen
04.11.2018 05:51:11
fcs
Hallo Tobi,
da scheint im VBA-Objekt-Modell von Excel eine Macke drin zu sein.
Für die berechneten Felder kann man die Eigenschaft Orientation zwar auf xlDataField setzen um das Feld nach dem Anlegen im Bericht anzuzeigen. Es ist per VBA aber nicht möglich die Eigenschaft auf xlHidden zu setzen um es auszublenden.
Man kann ein berechnetes Feld nur komplett löschen, dann verschwindet es natürlich auch aus dem Datenbereich - dies ist aber Unsinn, denn man möchte das Feld ja ggf. wieder verwenden und nicht jese mal wieder neu anlegen müssen.
Mit folgender Anpassung werden zumindest alle "normalen" Pivot-Felder aus dem Datenbereich entfernt.
Gruß
Franz
Public Sub tr()
Dim pvTab As PivotTable
Dim pf                        As PivotField
On Error Resume Next
Set pvTab = ActiveSheet.PivotTables(1)
For Each pf In pvTab.DataFields
pf.Orientation = xlHidden
Next pf
For Each pf In pvTab.CalculatedFields
'        pf.Delete
Next
End Sub

Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige