Kinga Grela

Kinga Grela Analityk, Społeczny
Instytut Wydawniczy
ZNAK

Temat: Filtrowanie pól OLAP w VBA

Cześć mam następujący problem, potrzebuje wyfiltrować określone pola w tabeli przestawnej zbudowanej na kostkach OLAP. Filtr bazuje na zakresie 2 kolumn, gdzie jeśli po lewj stronie od nazwy jest "X" to pole ma byc zaznaczone. ZRobiłam to dla normalnej tabeli przestawnej (nie OLAPOWEJ) i wszytsko działa, natomiast w OLAPOWEJ zamiast PivotItems mam PivotItemsList która jest tablicą i nie mam pomysłu jak mogłabym wejśc do niej z podobną pętlą.

Kod do zwykłej tp

Dim pf As PivotField
Set rngItems = ActiveSheet.Range("listapodgrup")
Set pt = ActiveSheet.PivotTables("tp")
Set pf = pt.PivotFields("Grupa")
Application.ScreenUpdating = False
Application.DisplayAlerts = False
On Error Resume Next
With pf
.AutoSort xlManual, .SourceName
i = 1
For i = 1 To 2
For Each c In rngItems
If UCase(c.Offset(0, -1)) = "X" Then
.PivotItems(c.Value).Visible = True
Else
.PivotItems(c.Value).Visible = False
End If
Next c
.AutoSort xlAscending, .SourceName
i = i + 1
Next i
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True

End Sub

w przypadku rejestrowania makra dla wybranego przykładu w tabeli na Olapie
ActiveSheet.PivotTables("test").PivotFields("[Indeksy].[Grupa].[Podgrupa]"). _
VisibleItemsList = Array("[Indeksy].[Grupa].&[Podgrupa1]")

Ktoś może coś pomóc, jakakolwiek wskazówka ?
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Filtrowanie pól OLAP w VBA

Masz u siebie w kodzie

Set pt = ActiveSheet.PivotTables("tp")
Set pf = pt.PivotFields("Grupa")


No to wystarczy odstawić:

Set pt = ActiveSheet.PivotTables("test")
Set pf = pt.PivotFields("[Indeksy].[Grupa].[Podgrupa]")
pf.VisibleItemsList = Array("[Indeksy].[Grupa].&[Podgrupa1]")


A potem jakiś modyfikacje, sortowania etc..
Kinga Grela

Kinga Grela Analityk, Społeczny
Instytut Wydawniczy
ZNAK

Temat: Filtrowanie pól OLAP w VBA

Tak to jasne, chodziło bardziej o to jak wejsc w pętle w tablicy array, ale udało sie na szczęście tskze juz nieaktualne, ale dziekuje
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Filtrowanie pól OLAP w VBA

Aaa, skoro jasne, to wszystko w porządku.

Następna dyskusja:

Filtrowanie zaawansowane - ...




Wyślij zaproszenie do