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 ?