AW: Pivottabelle: Berichtsfilter gleich andere Zelle
20.11.2014 16:08:28
fcs
Hallo Dennis,
das funktioniert nur per Makro.
Wenn es automatisch erfolgen soll, dann muss man ein Ereignismakro verwenden (z.B. Zelleingabe, Neuberechnung eines Tabellenblatts, Aktivieren eines Tabellenblatts)
Nachfolgend erfolgt die Aktualissierung, wenn das Blatt mit der Pivottabelle aktiviert/selektiet wird.
Wichtig ist, dass der Wert in der Zelle ein Wert ist, der für das Feld in der Auswahlliste auch vorhanden ist. Sonst gibt es Ärger und ggf. ungewollte Überraschungen; im Extremfall werden die Items in der Auswahlliste des Berichtsfeldes umbenannt.
Gruß
Franz
'Code im VBA-Editor unter einem allgemeinen Modul oder dem Tabellenblatt "Pivot"
Public Sub PivotBerichtsfeldSetzen(varWert, pvField As PivotField)
Dim pvTab As PivotTable
On Error GoTo Fehler
Set pvTab = pvField.Parent
With pvTab
pvField.ClearAllFilters
.RefreshTable
'Pivot-Berichtsfeld anpassen
pvField.CurrentPage = varWert
End With
Fehler:
With Err
Select Case .Number
Case 0 'alles ok
Case 5, 1004
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description & vbLf & vbLf _
& "Wert für Berichtsfilter: " & varWert & vbLf _
& "unzulässige Eingabe Wert im Berichtsfilter", vbOKOnly, _
"Berichtsfeld - Blatt " & pvTab.Parent.Name & " - " & pvTab.Name
Case Else
MsgBox "Fehler-Nr.: " & .Number & vbLf & .Description, vbOKOnly, _
"Berichtsfeld - Blatt " & pvTab.Parent.Name & " - " & pvTab.Name
End Select
End With
End Sub
'Code für Ereignismakro im VBA-Editor unter dem Tabellenblatt "Pivot"
Private Sub Worksheet_Activate()
Call PivotBerichtsfeldSetzen(varWert:=Worksheets("Daten").Range("A1").Value, _
pvField:=Me.PivotTables(1).PageFields("Feld01"))
End Sub
.