Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Pivottabelle: Berichtsfilter gleich andere Zelle

Betrifft: Pivottabelle: Berichtsfilter gleich andere Zelle von: Dennis
Geschrieben am: 19.11.2014 17:43:24

Hallo zusammen,

ich stehe vor folgendem Problem:
Nachdem ich eine Pivottabelle (Tabellenblatt "pivot") erzeugt habe, möchte ich gerne einen Berichtsfilter setzen. Dieser soll jedoch nicht manuell gesetzt werden sondern sich lediglich auf eine andere Zelle aus dem Datenblatt (Zelle "A1" Tabellenblatt "Daten") beziehen.

Über eure Hilfe würde ich mich sehr freuen!

Besten Dank im Voraus,

Gruß,
Dennis

  

Betrifft: AW: Pivottabelle: Berichtsfilter gleich andere Zelle von: fcs
Geschrieben am: 20.11.2014 16:08:28

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
.


 

Beiträge aus den Excel-Beispielen zum Thema "Pivottabelle: Berichtsfilter gleich andere Zelle"