Crie um gráfico dinâmico no Excel via VBA

1

Estou tentando criar um gráfico, manualmente ou com o VBA, que será atualizado automaticamente quando novas folhas forem adicionadas. Os dados são importados de uma tabela externa mensalmente e cada vez são adicionados a uma nova planilha. A estrutura de dados é sempre a mesma.

Eu sei usar gráficos dinâmicos se eu quiser que ele seja atualizado para novas linhas e colunas, mas isso é diferente.

Eu tentei usar o gravador de macro junto com o Assistente de gráfico dinâmico e, em seguida, modificá-lo com um loop for, assim:

For i = 1 To Sheets.Count
ActiveWorkbook.PivotCaches.Create(SourceType:=xlConsolidation, SourceData:= _
Array("Sheet" & i & "!R1C1:R10C7", "Item1"), _
Version:=6).CreatePivotTable TableDestination:="", TableName:= _
"PivotTable1", DefaultVersion:=6

More Code

Next i

O restante do código configura uma soma de valores e assim por diante.

Eu vejo que há um método PivotCaches.Item, mas não vejo nada sobre a atualização de um gráfico dinâmico existente.

Isso não precisa ser um gráfico dinâmico, se um gráfico regular funcionasse. Da mesma forma, se houver uma maneira de fazer isso sem o VBA, também é bom.

EDIT: Acho que resolvi. Quaisquer críticas são bem vindas.

For i = 1 To Sheets.Count
If IsEmpty(pivotArray) Then
    pivotArray = Array(1)
    ReDim Preserve pivotArray(1 To UBound(pivotArray) + 1) As Variant
    pivotArray(1) = Array("Sheet" & i & "!R1C1:R4C3", "Item1")
Else
    ReDim Preserve pivotArray(1 To UBound(pivotArray) + 1) As Variant
    pivotArray(UBound(pivotArray)) = Array("Sheet" & i & "!R1C1:R4C3", "Item1")
End If
Next i
    
por Stephan Garland 14.07.2017 / 19:11

0 respostas