¿Cómo sigo formateando en un gráfico dinámico de Excel 2010?

¿Cómo sigo formateando en un gráfico dinámico de Excel 2010?

Tengo un código VBA que ejecuta una consulta SQL, la vuelca en una hoja de cálculo de Excel 2010 y actualiza las 2 tablas dinámicas según los datos. También tengo 2 gráficos dinámicos basados ​​en las tablas dinámicas y cada vez que las tablas se actualizan, se pierde el formato de los gráficos.

Seguí las instrucciones enSección 12.3 de este librolo que sugirió crear un tipo de gráfico personalizado según mis preferencias de formato y aplicarlo a los gráficos que quiero que permanezcan formateados de esa manera. Estas instrucciones funcionan muy bien.siModifico manualmente los datos y luego actualizo manualmente la tabla dinámica; los gráficos permanecen con el formato adecuado. Sin embargo, cuando ejecuto este código:

For Each pt In NewSheet.PivotTables
  pt.RefreshTable
Next

el formato se pierde inmediatamente.

Así es como se veían los datos antes:

ingrese la descripción de la imagen aquí

y mis gráficos circulares cuidadosamente elaborados:

ingrese la descripción de la imagen aquí

Tan pronto como actualizo los datos y actualizo las tablas:

ingrese la descripción de la imagen aquí

Esto es lo que obtengo:

ingrese la descripción de la imagen aquí

Nuevamente, aplicar el estilo de gráfico personalizado mantendrá el formato si se hace manualmente, pero ejecutar el código VBA de alguna manera restablece el tipo de gráfico personalizado.

Respuesta1

Para lograr esto sin el uso de gráficos dinámicos, todo lo que necesita es un rango con nombre dinámico y un gráfico simple (si está muy formateado).

1) Cree un Nombre definido usando esta fórmula: Series_A=OFFSET(Sheet!B1,0,0,COUNT(A:A),1), donde - Hoja1!B1 se refiere a su primera celda de conteo en su tabla dinámica (o cualquier otra referencia, si se siente cómodo con OFFSET) - Conde(A:A) es su columna con fila etiquetas

2) Cree su(s) gráfico(s) con la serie=Series_A (y cualquier otra que necesite).

A medida que actualice sus tablas dinámicas, los nombres definidos harán referencia a los valores de expansión/contracción en la columna de etiquetas de fila y solo devolverán los valores en su columna de recuento. No se requieren 0, #N/A ni columnas auxiliares.

información relacionada