valor padrão para relatório de gráfico dinâmico Filtro / Page Field
Pergunta
Eu estou gerando um gráfico dinâmico no Excel 2002 com uma macro, utilizando um campo de data como o filtro de relatório de gráfico (configuração da orientação do campo para xlPageField). Gostaria de definir o valor selecionado padrão deste PivotField para o valor mais recente no campo de data. O que é a sintaxe correta para fazer isso no VBA?
Solução
Você não pode percorrer todos os itens para que pagefield? Aqui é para uma tabela dinâmica, mas fazê-la funcionar para um gráfico não deve ser grande coisa:
Sub Main()
Dim pvt As PivotTable
Dim fld As PivotField
Dim itm As PivotItem
Dim m As Variant
Set pvt = Worksheets(1).PivotTables(1)
Set fld = pvt.PageFields(1)
m = fld.PivotItems(1)
For Each itm In fld.PivotItems
If itm.Value > m Then m = itm.Value
Next itm
fld.CurrentPage = m
End Sub
Outras dicas
Você apenas não quer selecionar a célula depois de ter criado dinamicamente o gráfico?
Algo como:
Dim value As Date
value = "1-apr-09"
Dim row As Integer
row = 0
Dim keeplooping As Boolean
keeplooping = True
While (keeplooping)
row = row + 1
If Range("B" & row).value = value Then
keeplooping = False
Range("B" & row).Select
MsgBox ("found it")
ElseIf Range("B" & row).value = "" Then
keeplooping = False
MsgBox ("Not found")
End If
Wend
ChartObject .PivotLayout.PivotTable.PivotFields ( " fieldName "). CurrentPage = " fieldValue "
Isso é do Excel 2003, mas presumo que 2002 será semelhante