Erro Pivot vários gráficos SetSourceData
Pergunta
Eu tenho vários gráficos de articulação cada um com sua própria tabela dinâmica em planilhas separadas em Excel 2002.
Quando tento gerar esses gráficos com VBA com o seguinte código:
Set cht = Charts.Add(After:=Worksheets("Setup"))
With cht
' we use named ranges here
.SetSourceData Source:=range(tblName)
.Name = chtName
....
onde tblname é um intervalo nomeado acabou de criar algumas linhas antes, o código é executado muito bem se há apenas uma mesa e gráfico de gerar, mas me dá um erro de tempo de execução 1004: "Os dados de origem de um relatório de gráfico dinâmico não pode ser alterado. .." se eu tentar gerar a tabela de pivô e um conjunto de gráfico um após o outro.
Indo para Inserir -> Nome -.> Definir, a lista de intervalos nomeados criados parece ser correta ??p>
O que é a maneira correta de definir a fonte de dados para um gráfico dinâmico com uma gama dinâmica?
Solução 2
Este pedaço de código assume que você tem apenas uma tabela dinâmica por folha ea tabela pivot começa na célula A1:
Sheets(wsName).Select
Range("A1").Select
Set cht = Charts.Add(after:=Worksheets(Worksheets.Count))
With cht
.SetSourceData Sheets(wsName).Range("A1")
.Name = chtName
...
Também mudando "Worksheets.Count" a um nome de planilha específica parece provocar esse erro também.
Outras dicas
Eu acho que você pode estar tentando fazer muitas coisas ao mesmo tempo.
Se a fonte de dados vai mudar, eu não iria usar um gráfico dinâmico.
Use uma tabela dinâmica, criar o gráfico em tempo de execução (como o seu exemplo). Construir seu gráfico dos resultados da tabela dinâmica.