Como continuo a formatação em um gráfico dinâmico do Excel 2010?

Como continuo a formatação em um gráfico dinâmico do Excel 2010?

Eu tenho um código VBA que executa uma consulta SQL, despeja-a em uma planilha do Excel 2010 e atualiza as 2 tabelas dinâmicas com base nos dados. Também tenho 2 gráficos dinâmicos baseados nas tabelas dinâmicas e, sempre que as tabelas são atualizadas, a formatação dos gráficos é perdida.

Eu segui as instruções emSeção 12.3 deste livroque sugeriu criar um tipo de gráfico personalizado com base em minhas preferências de formatação e aplicá-lo aos gráficos que desejo que permaneçam formatados dessa forma. Estas instruções funcionam muito bemseEu modifico manualmente os dados e atualizo manualmente a Tabela Dinâmica - os gráficos permanecem formatados corretamente. No entanto, quando executo este código:

For Each pt In NewSheet.PivotTables
  pt.RefreshTable
Next

a formatação é imediatamente perdida.

Esta é a aparência dos dados antes:

insira a descrição da imagem aqui

e meus gráficos de pizza cuidadosamente elaborados:

insira a descrição da imagem aqui

Assim que eu atualizar os dados e atualizar as tabelas:

insira a descrição da imagem aqui

Isto é o que eu recebo:

insira a descrição da imagem aqui

Novamente, aplicar o estilo de gráfico personalizado manterá a formatação se for feito manualmente, mas a execução do código VBA de alguma forma redefine o tipo de gráfico personalizado.

Responder1

Para fazer isso sem o uso de gráficos dinâmicos, tudo o que você precisa é de um intervalo nomeado dinâmico e de um gráfico simples (se formatado de maneira grosseira).

1) Crie um nome definido usando esta fórmula: Series_A=OFFSET(Sheet!B1,0,0,COUNT(A:A),1), onde - Sheet1!B1 refere-se à sua primeira célula de contagem em sua tabela dinâmica (ou qualquer outra referência, se você estiver confortável com OFFSET) - Count(A:A) é sua coluna com linha rótulos

2) Crie seu(s) gráfico(s) com series=Series_A (e quaisquer outros que você precisar).

À medida que você atualiza suas tabelas dinâmicas, os nomes definidos farão referência aos valores de expansão/contração na coluna de rótulos de linha e retornarão apenas os valores na coluna de contagem. Não são necessários 0's, #N/A's ou colunas auxiliares.

informação relacionada