Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1372to1376
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code ändern Berichtsfilter lesen Power Pivot

Code ändern Berichtsfilter lesen Power Pivot
08.08.2014 14:17:37
Johann
Hallo zusammen,
ich stehe mal wieder vor einem Problem mit einem Makro und hoffe, dass ihr mir auch diesmal helfen könnt.
Ich habe folgenden Code getest, der für eine "normale" Pivot Tabelle funktioniert. Das Makro liest den Berichtsfilterinhalt (in diesem Fall existiert nur einer) und schreibt ihn ein ein anderes Tabellenblatt. In A1 steht der Name des Feldes und darunter der Inhalt.
Sub Get_Current_PageFilters_OnePageField()
Dim PT As PivotTable
Dim sArray() As String
Dim i As Long
On Error Resume Next
Set PT = Worksheets("PivotData").Range("A1").PivotTable
If PT.PageFields.Count 
Wenn ich ihn auf meine PT anwenden will, die sich die Daten aus einem Power Pivot Datenmodell zieht, wird folgendes in Feld A1 angezeigt: [Pivot_MerO_DataImport].[Decided Year].[Decided Year]
Der Inhalt der esten Klammer ist der Name der Tabelle im Datenmodell. Der Inhalt der anderen ist der Name des Seitenfelds bzw. des Berichtsfilters. Der Inhalt sollte nun darunter stehen. Tut er aber nicht.
Kennt sich jemand mit diesem Problem aus und weiß,wie ich den Code ändern müsste?
Viele Grüße
Johann

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code ändern Berichtsfilter lesen Power Pivot
09.08.2014 15:35:34
fcs
Hallo Johann,
ich hab jetzt mal mit PowerPivot gearbeit.
PoerPivot kreiert scheinbar einen OLAP-Cube als Datenwuelle für den Pivotbericht. Da gelten etwas andere Regeln, auch wenn es optisch kaum Unterschiede gibt. Nachfolgend ein Beispiel wie man es umsetzen könnte.
Gruß
Franz
'Anwendung bei Pivot-Tabellenberichten mit OLAP-Cube-Datenquelle
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
Dim pvField As PivotField, intV, intZeile As Integer, intSpalte As Integer, _
pvItem As Variant, strItem As String, Zelle0 As Range
With Me
Set Zelle0 = Me.Range("F2") 'Startzelle für das Eintragen der Werte
If Zelle0  "" Then Zelle0.CurrentRegion.ClearContents
'Alle slektierten Elemente der >Berichtsfelder in den rechten Nachbarzellen anzeigen
intSpalte = 0
For Each pvField In Target.PageFields
intZeile = 0
'Pivot-Feldname (ohne vorangestellte Elemente der Datenquelle
strItem = pvField.Name
strItem = Mid(strItem, InStrRev(strItem, ".[") + 2)
strItem = Left(strItem, Len(strItem) - 1)
Zelle0.Offset(intZeile, intSpalte).Value = strItem
If pvField.DataRange.Text = "All" Then
'Alle Elemente sind gewählt
intZeile = intZeile + 1
Zelle0.Offset(intZeile, intSpalte).Value = "(Alle)"
ElseIf pvField.VisibleItemsList(1) = "" Then
'Ein einzelnes Element ist selektiert - mehrfachselektion ist deaktiviert
intZeile = intZeile + 1
Zelle0.Offset(intZeile, intSpalte).Value = pvField.DataRange.Text
Else
'Mehrfachselektion ist aktiviert
For Each pvItem In pvField.VisibleItemsList
'Pivot-Item (ohne vorangestellte Elemente der Datenquelle)
strItem = pvItem
strItem = Mid(strItem, InStr(1, strItem, "&") + 2)
strItem = Left(strItem, Len(strItem) - 1)
intZeile = intZeile + 1
Zelle0.Offset(intZeile, intSpalte).Value = strItem
Next
End If
intSpalte = intSpalte + 1
Next
End With
End Sub

Anzeige
Hammerstark! Tausend Dank!!!
12.08.2014 16:17:51
Johann
VG
Johann

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige