Farba grafu z buniek s údajmi

Formulácia problému

Chcel by som, aby stĺpce na histograme (alebo rezy na koláčovom grafe atď.) mali automaticky farbu, ktorá bola použitá na vyplnenie zodpovedajúcich buniek zdrojovými údajmi:

V očakávaní prekvapených a rozhorčených výkrikov jednotlivých súdruhov treba poznamenať, že samozrejme farbu výplne v diagrame je možné zmeniť aj manuálne (kliknutie pravým tlačidlom myši na stĺpec – Bodový/sériový formát (Formátovať dátový bod/sériu) atď – nikto sa neháda. V praxi však existuje veľa situácií, keď je jednoduchšie a pohodlnejšie to urobiť priamo v bunkách s údajmi a potom by sa mal graf automaticky prekresliť. Skúste napríklad nastaviť vyplnenie podľa oblasti pre stĺpce v tomto grafe:

Myslím, že rozumiete, však?

Riešenie

Nič iné ako makro to nedokáže. Preto otvárame Editor jazyka Visual Basic z karty vývojka (Vývojár — Visual Basic Editor) alebo stlačte klávesovú skratku Alt + F11, vložte nový prázdny modul cez ponuku Vložiť – Modul a skopírujte tam text takého makra, ktoré urobí všetku prácu:

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

Teraz môžete zatvoriť Visual Basic a vrátiť sa do Excelu. Používanie vytvoreného makra je veľmi jednoduché. Vyberte graf (oblasť grafu, nie oblasť grafu, mriežku alebo stĺpce!):

a spustite naše makro tlačidlom Makrá pútko vývojka (Vývojár – makrá) alebo pomocou klávesovej skratky Alt + F8. V tom istom okne v prípade častého používania môžete makru priradiť klávesovú skratku pomocou tlačidla parametre (Možnosti).

PS

Jedinou muchou je nemožnosť použiť podobnú funkciu pre prípady, keď je farba priradená bunkám zdrojových údajov pomocou pravidiel podmieneného formátovania. Žiaľ, Visual Basic nemá vstavaný nástroj na čítanie týchto farieb. Existujú, samozrejme, určité „barličky“, ale nefungujú vo všetkých prípadoch a nie vo všetkých verziách.

  • Čo sú makrá, ako ich používať, kam vložiť kód makra vo Visual Basicu
  • Podmienené formátovanie v Exceli 2007-2013
  • Čo je nové v grafoch v Exceli 2013

Nechaj odpoveď