Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Berechnete DataFields ausblenden

Berechnete DataFields ausblenden
pastinake
Hallo !
Ich bestücke eine Pivot Tabelle dynamisch mit Datenfeldern. Das herausnehmen der Datenfelder wird jedoch zum Problem, wenn diese berechnet sind.
Also habe ich eine kleine Schleife gebaut, die das abfängt. Jetzt bleibt die Frage, wie ich diese berechneten Felder ausgeblendet (zurück in die Feldliste, nicht löschen) bekomme ?
Beispiel:

Private Sub DatenFelderHerausnehmen()
Dim pf As PivotField
Dim ptBeispielpivot As PivotTable
Set ptBeispielpivot = Sheets("pivot").PivotTables("Beispielpivot")
With ptBeispielpivot
For Each pf In .DataFields
If .PivotFields(pf.SourceName).IsCalculated Then
' Genau hier ist mein Problem..
Else
pf.Orientation = xlHidden
End If
Next
End With
End Sub

Für Eure Hilfe meinen Herzlichen DANK
Bernd
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Berechnete DataFields ausblenden
22.05.2011 09:21:16
fcs
Hallo Bernd,
berechnete Felder bereiten hier unter VBA tatsächlich Probleme.
.Orientation = xlHidden
kann für diese Felder nicht gesetzt werden. Unter Excel 2007 funktioniert es manuell. Der per Makrorekorder aufgezeichnete Code zum Ausblenden der Felder zeigt aber eine Fehlermeldung an.
Hier bleibt dir wohl nichts anderes übrig als die ensprechenden berechneten Felder zu löschen und bei Bedarf wieder hinzuzufügen.
Schaut dann etwa wie folgt aus.
Gruß
Franz
Sub DatenFelderNeu()
Dim sFieldName As String
Dim ptBeispielpivot As PivotTable
Set ptBeispielpivot = Sheets("pivot").PivotTables(1)
Call DatenFelderHerausnehmen(pvTab:=ptBeispielpivot)
'Felder im Datenbereich hinzufügen
With ptBeispielpivot
.AddDataField .PivotFields("Feld05"), "Summe Feld05", xlSum
sFieldName = "Multi"
.CalculatedFields.Add Name:=sFieldName, _
Formula:="=Feld04 *Feld05", _
usestandardformula:=True
.AddDataField .PivotFields(sFieldName), "Summe " & sFieldName, xlSum
End With
End Sub
Sub DatenFelderHerausnehmen(pvTab As PivotTable)
Dim pf As PivotField
'Alle Felder im Datenbereich der Pivottabelle entfernen
With pvTab
For Each pf In .DataFields
If .PivotFields(pf.SourceName).IsCalculated Then
.PivotFields(pf.SourceName).Delete
Else
pf.Orientation = xlHidden
End If
Next
End With
End Sub

Anzeige
AW: Berechnete DataFields ausblenden
22.05.2011 09:51:05
pastinake
Hallo Franz,
danke für Deine Mühe. Ich hatte schon so was befürchtet.
Ich spekuliere auf die Tatsache, dass sich mehrere Datenfelder gemeinsam über das PivotFeld "Daten" wieder hidden lassen. Auch wenn dort berechnete Felder inbegriffen sind.
Somit könnte man (noch nicht getestet) einen "dummy" mit in das Datenfeld legen und dann gemeinsam hidden.
Ist dann universeller, da ich ja nicht in jeder Umgebung die Formel kenne.
Ich teste noch ein wenig,- Dir lieben Dank! Wenn mir nichts anderes einfällt, werde ich auf Deine Lösung zurückgreifen...
Bernd
Anzeige
Lösung
22.05.2011 10:56:10
pastinake
Für meinen Fall die Lösung:
Private Sub DatenFelderHerausnehmen()
Dim pi As PivotItem
Dim pf As PivotField
Dim ptBeispielpivot As PivotTable
Set ptBeispielpivot = Sheets("pivot").PivotTables("Beispielpivot")
With ptBeispielpivot
.DataLabelRange.Delete
End With
End Sub

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige