0
votes

I have a pivot table created from 3 fields where (for example):

field1 values are: "1", "3", "5"
field2 values are: "A", "B", "C"
field3 values are: "X", "Y", "Z"

So given a pivot table PT1 I want to reference a cell within the table in a similar way to PT1["1"]["B"]["Y"] and get a Range item returned. Is this possible? Thanks.

EDIT: codes:

Public Sub ColorIt2()
Dim rng As Range

For Each t_item In ActiveSheet.PivotTables("PivotTable1").PivotFields("F1").PivotItems
For Each r_item In ActiveSheet.PivotTables("PivotTable1").PivotFields("F2").PivotItems
    For Each h_item In ActiveSheet.PivotTables("PivotTable1").PivotFields("F3").PivotItems
        For Each b_item In ActiveSheet.PivotTables("PivotTable1").PivotFields("F4").PivotItems

            If t_item.RecordCount <> 0 Or _
                r_item.RecordCount <> 0 Or _
                h_item.RecordCount <> 0 Or _
                b_item.RecordCount <> 0 Then
                    Set rng = ActiveSheet.PivotTables("PivotTable1").GetPivotData(t_item, r_item, h_item, b_item)
                    rng.Select
                    Selection.Interior.ColorIndex = 40
                    Selection.Interior.Pattern = xlSolid
                End If
            End If
        Next b_item
    Next h_item
Next r_item
Next t_item

End Sub
1
FIXED: sending the wrong 1st argument to GetPivotDate. It's not a datafield. Solved by sending (in my case) "SUM" as 1st argument. Thanks! :)mathon12

1 Answers

0
votes

Not sure, but maybe you want the GetPivotData function?