Color de un gráfico a partir de celdas con sus datos

Formulación del problema

Me gustaría que las columnas del histograma (o los sectores del gráfico circular, etc.) tengan automáticamente el color que se usó para llenar las celdas correspondientes con los datos de origen:

Anticipándose a los gritos de sorpresa e indignación de los camaradas individuales, cabe señalar que, por supuesto, el color del relleno en el diagrama también se puede cambiar manualmente (haga clic con el botón derecho en la columna – Formato punto/serie (Dar formato a punto/serie de datos) etc. – nadie discute. Pero en la práctica, hay muchas situaciones en las que es más fácil y conveniente hacer esto directamente en las celdas con datos, y luego el gráfico debe volver a dibujarse automáticamente. Intente, por ejemplo, establecer el relleno por región para las columnas en este gráfico:

Creo que entiendes la idea, ¿verdad?

Solución

Nada más que una macro puede hacer esto. Por lo tanto, abrimos Editor de Visual Basic de la pestaña revelador (Desarrollador — Editor de Visual Basic) o presione el atajo de teclado Alt + F11, inserte un nuevo módulo vacío a través del menú Insertar – Módulo y copie el texto de dicha macro allí, que hará todo el trabajo:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" Then MsgBox "Сначала выделите диаграмму!" Exit Sub End If Set c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j).Formula m = Split(f, ",") Set r = Range(m(2)) For i = 1 Para r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Ahora puede cerrar Visual Basic y volver a Excel. Usar la macro creada es muy simple. Seleccione el gráfico (¡área de gráfico, no área de trazado, cuadrícula o columnas!):

y ejecutar nuestra macro con el botón Macros de la pestaña. revelador (Desarrollador — Macros) o con un atajo de teclado Alt + F8. En la misma ventana, en caso de uso frecuente, puede asignar un atajo de teclado a la macro usando el botón parámetros (Opciones).

PS

La única mosca en el ungüento es la imposibilidad de utilizar una función similar para los casos en los que el color se asigna a las celdas de los datos de origen mediante reglas de formato condicional. Desafortunadamente, Visual Basic no tiene una herramienta integrada para leer estos colores. Existen, por supuesto, ciertas “muletas”, pero no sirven para todos los casos y no en todas las versiones.

  • Qué son las macros, cómo usarlas, dónde insertar código de macro en Visual Basic
  • Formato condicional en Excel 2007-2013
  • Novedades en gráficos en Excel 2013

Deje un comentario