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?

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top