Cor dun gráfico a partir de celas cos seus datos

Formulación do problema

Gustaríame que as columnas do histograma (ou franxas do gráfico circular, etc.) teñan automaticamente a cor que se utilizou para encher as celas correspondentes cos datos de orixe:

Anticipándose aos berros sorprendidos e indignados de compañeiros individuais, hai que ter en conta que, por suposto, a cor do recheo do diagrama tamén se pode cambiar manualmente (faga clic co botón dereito sobre a columna - Formato punto/serie (Formato de punto/serie de datos) etc. – ninguén discute. Pero na práctica, hai moitas situacións nas que é máis fácil e cómodo facelo directamente nas celas con datos e, a continuación, o gráfico debería pintarse automaticamente. Tenta, por exemplo, establecer o recheo por rexión para as columnas deste gráfico:

Creo que entendes a idea, non?

solución

Nada máis que unha macro pode facelo. Por iso, abrimos Editor de Visual Basic dende a pestana revelador (Desenvolvedor — Editor de Visual Basic) ou prema o atallo do teclado Alt + F11, insira un novo módulo baleiro a través do menú Inserir – Módulo e copia alí o texto desta macro, que fará todo o traballo:

Sub SetChartColorsFromDataCells() If TypeName(Selección) <> "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.Cell.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Seguinte i Seguinte j End Sub  

Agora podes pechar Visual Basic e volver a Excel. Usar a macro creada é moi sinxelo. Seleccione o gráfico (área do gráfico, non área de trazado, cuadrícula ou columnas!):

e executa a nosa macro co botón Macros aba revelador (Desenvolvedor - Macros) ou cun atallo de teclado Alt + F8. Na mesma fiestra, en caso de uso frecuente, pode asignar un atallo de teclado á macro mediante o botón Parámetros (Opcións).

PS

A única mosca na pomada é a imposibilidade de usar unha función similar para os casos en que a cor se asigna ás celas dos datos de orixe mediante regras de formato condicional. Desafortunadamente, Visual Basic non ten unha ferramenta incorporada para ler estas cores. Hai, por suposto, certas "muletas", pero non funcionan para todos os casos e non en todas as versións.

  • Que son as macros, como usalas, onde inserir o código de macros en Visual Basic
  • Formato condicional en Excel 2007-2013
  • Novidades nos gráficos en Excel 2013

Deixe unha resposta