berechnetes Pivotfeld formatieren?

12/07/2010 - 13:30 von Karl Effinger | Report spam
Hallo Gruppe!

Ich füge in eine Pivottabelle ein berechnetes Feld ("verfügt/Ziel")
ein, das ich anschließend formatiere. Mein Problem: Excel nennt das
Datenfeld automatisch in "Summe von verfügt/Ziel". In einem englischen
Excel steht hier aber als Name "sum of verfügt/Ziel". Und eben diesen
Namen verwende ich, um das Datenfeld für die Formatierung zu
referenzieren. Mein Makro sollte aber unabhàngig von der eingestellten
Sprache laufen. Wie könnte das gehen?

Hier mein Code:

With objExcel.ActiveSheet.PivotTables(strPivot)
'berechnetes Feld "verfügt/Ziel" einfügen
.CalculatedFields.Add "verfügt/Ziel",
"=IF(Zielwert<>0,'verfügt (EL+FL)'/Zielwert,1)", True
'Feld als Datenfeld verwenden
.PivotFields("verfügt/Ziel").Orientation = xlDataField
'Datenfeld formatieren - ab jetzt muss "Summe von " in den
Namen mit 'rein
.PivotSelect "'Summe von verfügt/Ziel'", xlDataAndLabel, True
.PivotFields("Summe von verfügt/Ziel").Position = 9
.PivotFields("Summe von verfügt/Ziel").Function = xlSum
.PivotFields("Summe von verfügt/Ziel").NumberFormat = "0.0%"
End With

Gruß,
Karl

(Excel 2003, Windows XP)
 

Lesen sie die antworten

#1 Stefan Kunze
12/07/2010 - 17:34 | Warnen spam
Hallo Karl,

"Karl Effinger" schrieb
[...]
Mein Makro sollte aber unabhàngig von der eingestellten
Sprache laufen. Wie könnte das gehen?

Hier mein Code:

With objExcel.ActiveSheet.PivotTables(strPivot)
'berechnetes Feld "verfügt/Ziel" einfügen
.CalculatedFields.Add "verfügt/Ziel",
"=IF(Zielwert<>0,'verfügt (EL+FL)'/Zielwert,1)", True
'Feld als Datenfeld verwenden
.PivotFields("verfügt/Ziel").Orientation = xlDataField
'Datenfeld formatieren - ab jetzt muss "Summe von " in den
Namen mit 'rein
.PivotSelect "'Summe von verfügt/Ziel'", xlDataAndLabel, True
.PivotFields("Summe von verfügt/Ziel").Position = 9
.PivotFields("Summe von verfügt/Ziel").Function = xlSum
.PivotFields("Summe von verfügt/Ziel").NumberFormat = "0.0%"
End With

Gruß,
Karl

(Excel 2003, Windows XP)



Du kannst das Feld selbst benennen, z.B. so:

Dim ptbl As PivotTable
Dim pfld As PivotField

Set ptbl = objExcel.ActiveSheet.PivotTables(strPivot)
Set pfld = ptbl.CalculatedFields.Add( _
"verfügt/Ziel", _
"=IF(Zielwert<>0,'verfügt (EL+FL)'/Zielwert,1)")

With pfld
.Orientation = xlDataField
.Function = xlSum
.Name = "Summe von verfügt/Ziel"
.Position = 9
.NumberFormat = "0.0%"
End With


Wichtig ist, die Speicherung in einer Objektvariablen. Damit hast du
Zugriff auf das Objekt, auch wenn der Name nicht bekannt ist (Summe...
oder Sum...).

Viele Grüße
Stefan

Ähnliche fragen