Kleur van een grafiek uit cellen met de bijbehorende gegevens

Formulering van het probleem

Ik zou willen dat de kolommen op het histogram (of segmenten op het cirkeldiagram, enz.) automatisch de kleur hebben die werd gebruikt om de overeenkomstige cellen te vullen met de brongegevens:

Anticiperend op de verbaasde en verontwaardigde kreten van individuele kameraden, moet worden opgemerkt dat de kleur van de vulling in het diagram natuurlijk ook handmatig kan worden gewijzigd (klik met de rechtermuisknop op de kolom - Punt/reeksformaat (Formaat datapunt/reeks) enz. - niemand maakt ruzie. Maar in de praktijk zijn er veel situaties waarin het gemakkelijker en handiger is om dit rechtstreeks in de cellen met gegevens te doen, en dan moet het diagram automatisch opnieuw worden geverfd. Probeer bijvoorbeeld de vulling per regio in te stellen voor de kolommen in dit diagram:

Ik denk dat je het idee snapt, toch?

Oplossing

Niets dan een macro kan dit. Daarom openen wij Visual Basic-editor van het tabblad ontwikkelaar (Ontwikkelaar — Visual Basic Editor) of druk op de sneltoets Alt + F11, voeg een nieuwe lege module in via het menu Invoegen – Module en kopieer de tekst van zo'n macro daar, die al het werk zal doen:

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 tot r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

U kunt nu Visual Basic sluiten en terugkeren naar Excel. Het gebruik van de gemaakte macro is heel eenvoudig. Selecteer de grafiek (grafiekgebied, geen plotgebied, raster of kolommen!):

en voer onze macro uit met de knop Macro's tab ontwikkelaar (Ontwikkelaar — Macro's) of met een sneltoets Alt + F8. In hetzelfde venster kunt u bij veelvuldig gebruik een sneltoets toewijzen aan de macro met behulp van de knop parameters (Opties).

PS

De enige vlieg in de zalf is de onmogelijkheid om een ​​vergelijkbare functie te gebruiken voor gevallen waarin de kleur wordt toegewezen aan de cellen van de brongegevens met behulp van voorwaardelijke opmaakregels. Helaas heeft Visual Basic geen ingebouwde tool om deze kleuren te lezen. Er zijn natuurlijk bepaalde "krukken", maar die werken niet voor alle gevallen en niet in alle versies.

  • Wat zijn macro's, hoe ze te gebruiken, waar macrocode in te voegen in Visual Basic
  • Voorwaardelijke opmaak in Excel 2007-2013
  • Wat is er nieuw in grafieken in Excel 2013

Laat een reactie achter