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

Pivot-Wertfeldeinstellung ändert sich automatisch

Forumthread: Pivot-Wertfeldeinstellung ändert sich automatisch

Pivot-Wertfeldeinstellung ändert sich automatisch
22.04.2026 11:41:57
{Boris}
Hallo zusammen,

ich habe eine umfangreiche Datei mit diversen Pivottabellen. Die Filter der Pivots werden in den Tabellen per VBA angesteuert / geändert.
Datenquelle ist eine intelligente Tabelle. Alle Wertfeldeinstellung der Pivottabellen stehen auf "Summe".
Jetzt kommt es aber ab und an vor, dass sich die Wertfeldeinstellungen in Teilen von selbst auf "Anzahl" ändern - das ist aber maximal unerwünscht.
Die KI erzählt mir dazu, dass das oft ein einer Aktualisierung der Datenquelle oder der Pivottabelle liegt, wodurch Excel auf den Standard zurücksetzt. Aber genau das möchte ich verhindern.

Habe mir dazu ein Makro geschrieben, was mir in einem separaten Blatt das jeweilige Arbeitsblatt, den Namen der Pivottabelle, die Bezeichnung des Feldnamens und dessen Funktion auflistet. Das hilft mir, die "Übeltäter" schnell zu identifizieren. Jedoch wäre es viel schöner, wenn man das von Grund auf her fixen könnte.

Habt ihr dazu eine Idee?

Hier der Vollständigkeit halber noch vorgenanntes Makro zur Überprüfung der Pivots.

'Listet in einem separaten Blatt alle Pivotfelder mit ihren Wertfeldeinstellung auf


Sub CheckPivotFieldFunctionsSheet()
Dim ws As Worksheet
Dim pT As PivotTable
Dim pf As PivotField
Dim outputWs As Worksheet
Dim row As Integer

' Neues Blatt für die Ausgabe erstellen
On Error Resume Next
Set outputWs = ThisWorkbook.Worksheets("Pivot-Check")
If outputWs Is Nothing Then
Set outputWs = ThisWorkbook.Worksheets.Add
outputWs.Name = "Pivot-Check"
Else
outputWs.Cells.Clear ' Vorhandene Daten löschen
End If
On Error GoTo 0

' Überschriften setzen
outputWs.Cells(1, 1).Value = "Arbeitsblatt"
outputWs.Cells(1, 2).Value = "PivotTable"
outputWs.Cells(1, 3).Value = "Feldname"
outputWs.Cells(1, 4).Value = "Funktion"

row = 2

' Durchlaufe alle Arbeitsblätter
For Each ws In ThisWorkbook.Worksheets
' Durchlaufe alle Pivottabellen im aktuellen Arbeitsblatt
For Each pT In ws.PivotTables
' Durchlaufe alle Wertfelder der aktuellen Pivottabelle
For Each pf In pT.DataFields
outputWs.Cells(row, 1).Value = ws.Name
outputWs.Cells(row, 2).Value = pT.Name
outputWs.Cells(row, 3).Value = pf.Name
outputWs.Cells(row, 4).Value = GetFunctionName(pf.Function)
row = row + 1
Next pf
Next pT
Next ws

' Spalten automatisch anpassen
outputWs.Columns.Autofit
End Sub


Danke vorab und viele Grüße,

Boris
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Hier noch die UDF dazu
22.04.2026 11:44:15
{Boris}
Function GetFunctionName(pfFunction As XlConsolidationFunction) As String

' Übersetzt die Excel-Funktionscodes in lesbare Namen
Select Case pfFunction
Case xlSum: GetFunctionName = "Summe"
Case xlCount: GetFunctionName = "Anzahl"
Case xlAverage: GetFunctionName = "Mittelwert"
Case xlMax: GetFunctionName = "Max"
Case xlMin: GetFunctionName = "Min"
Case xlProduct: GetFunctionName = "Produkt"
Case xlCountNums: GetFunctionName = "Anzahl Zahlen"
'Case xlStdDev: GetFunctionName = "Standardabweichung"
Case xlVar: GetFunctionName = "Varianz"
Case Else: GetFunctionName = "Unbekannt (" & pfFunction & ")"
End Select
End Function
Anzeige
Meine "Behelfslösung"
22.04.2026 14:03:21
{Boris}
Hallo zusammen,

ich rufe im Open-Ereignis die UDF "AllePivotSummenOK auf und setze dann - sofern diese FALSCH liefert - alle Wertfeldeinstellungen mit der Sub SetzeAlleWerteAufSumme_MitBeschriftung auf Summe.
Funktioniert natürlich - dennoch fände ich es schöner, wenn man das von vornherein vermeiden könnte.

Function AllePivotSummenOK() As Boolean

Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField

AllePivotSummenOK = True

For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables

For Each pf In pt.DataFields

' Prüfen, ob Zusammenfassungsfunktion Summe ist
If pf.Function > xlSum Then
AllePivotSummenOK = False
Exit Function
End If

Next pf

Next pt
Next ws

End Function

Sub SetzeAlleWerteAufSumme_MitBeschriftung()

Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim alteBeschriftung As String

For Each ws In ThisWorkbook.Worksheets
For Each pt In ws.PivotTables

For Each pf In pt.DataFields

' Aktuelle Beschriftung speichern
alteBeschriftung = pf.Caption

' Nur ändern, wenn nicht bereits Summe
If pf.Function > xlSum Then
pf.Function = xlSum

' Beschriftung wiederherstellen
On Error Resume Next
pf.Caption = alteBeschriftung
On Error GoTo 0
End If

Next pf

Next pt
Next ws

End Sub


VG, Boris
Anzeige
AW: Pivot-Wertfeldeinstellung ändert sich automatisch
22.04.2026 14:11:42
snb
Ich würde eine Beispieldatei bevorzügen.
AW: Pivot-Wertfeldeinstellung ändert sich automatisch
22.04.2026 21:23:21
xlKing
Hi Boris,

das von dir beschriebene Verhalten kann ich mir nicht vorstellen. Beim Aktualisieren werden normalerweise nur Spaltenbreite und Formatierung verändert. Beides kannst du mit entfernen von Häkchen unterbinden. Aber dass sich die Aggregatfunktion ändert ist schon merkwürdig. Bist du dir sicher, dass dem so ist, und dass du diese nicht mit Ausführen eines vierten Makros versehentlich automatisch änderst?

Damit sich die Formatierung nach dem Aktualisieren nicht mehr ändert, klicke mit der rechten Maustaste auf die Pivottabelle, wähle Pivot-Table Optionen und entferne im Register "Layout und Format" ganz unten die beiden Häkchen. Eventuell kannst du auch damit experimentieren im Register Summen&Filter Häkchen zu entfernen. Vielleicht ist in deiner Version eine dieser Checkboxen für das Problem verantwortlich. Ein Versuch kann nicht schaden.

Gruß Mr. K.

Anzeige
AW: Pivot-Wertfeldeinstellung ändert sich automatisch
23.04.2026 00:40:06
Yal
Hallo Boris,

es gibt es wohl irgendwo eine Wert, die dich nicht eindeutig als Zahl erkennen lässt.

Eine einfache Möglichkeit wäre, die PivotTable aus einer Power Query Abfrage befüllen zu lassen, die die int. Tabelle als Quelle hat, anstatt direkt auf die int. Tabelle. So kannst Du in der Abfrage die Datentypen festlegen und so sicherstellen, dass immer Summe rauskommt.

VG
Yal
Anzeige
AW: Pivot-Wertfeldeinstellung ändert sich automatisch
23.04.2026 01:51:58
Uduuh
Hallo Boris,
möglicherweise sind durch die Aktualisierung der Quelldaten TEXTE in der Spalte.

Gruß aus'm Pott
Udo
Sammeldank
23.04.2026 14:25:55
{Boris}
Hallo zusammen,

danke für alle weiteren Vorschläge / Ideen.
Die Wertefunktion (Summe) wird nirgends per VBA angepackt. Möglicherweise steht in der Bezugsspalte aber nicht überall eine Zahl (sollte zwar der Fall sein, aber wer weiß - und die intelligente Tabelle ist bis zu 10.000 Zeilen lang), so dass Excel dann "Anzahl" für logischer erklärt und das entsprechen eigenständig ändert.
Die Idee mit PQ ist aber sicher die Beste. Die Pivotfilterwerte werden in einem anderen Blatt per Dropdown ausgewählt und dann bislang per VBA (Change-Ereignis) in die Pivot übertragen. Hier wäre eine PQ-Verknüpfung sicher möglich und auch sinnvoll.
Ich werde das mal in Ruhe ausprobieren.

Vielen Dank Euch allen!

VG, Boris
Anzeige
AW: Pivot-Wertfeldeinstellung ändert sich automatisch
22.04.2026 14:17:20
{Boris}
Hi,

es handelt sich um eine sehr komplexe Kundendatei mit ausschließlich vertraulichen Informationen.
Daher kann ich die leider nicht hochladen.

VG, Boris
AW: Pivot-Wertfeldeinstellung ändert sich automatisch
22.04.2026 14:51:32
JoWE
Du könntest die Arbeitsmappe anonymisieren und auf wenige Daten verkleinern.
AW: Pivot-Wertfeldeinstellung ändert sich automatisch
22.04.2026 15:10:40
{Boris}
Hi,

nein - ohne 2 Stunden Aufwand nicht möglich. Außerdem tritt das Problem immer nur unerwartet ohne jegliche Logik auf.
Ging mir mehr darum, ob ihr das auch schon hattet und irgendeinen Tipp habt, wie man das vermeiden kann.

VG, Boris
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18