Egy diagram színe cellákból az adataival

A probléma megfogalmazása

Szeretném, ha a hisztogram oszlopai (vagy a kördiagram szeletei stb.) automatikusan olyan színt kapnának, mint amivel a megfelelő cellákat a forrásadatokkal kitöltötték:

Előrevetve az egyes elvtársak meglepett és felháborodott kiáltásait, meg kell jegyezni, hogy természetesen a diagram kitöltésének színe manuálisan is módosítható (jobb gombbal kattintson az oszlopra – Pont/sorozat formátum (Adatpont/sorozat formázása) stb. – senki sem vitatkozik. De a gyakorlatban nagyon sok olyan helyzet van, amikor egyszerűbb és kényelmesebb ezt közvetlenül az adatokkal rendelkező cellákban megtenni, majd a diagramot automatikusan újra kell festeni. Próbálja meg például beállítani a régió szerinti kitöltést a diagram oszlopaihoz:

Szerintem érted az ötletet, igaz?

Megoldás

Erre csak egy makró képes. Ezért nyitunk Visual Basic szerkesztő a lapról fejlesztő (Fejlesztő – Visual Basic szerkesztő) vagy nyomja meg a billentyűparancsot Alt + F11, helyezzen be egy új üres modult a menün keresztül Beszúrás – Modul és másolja oda egy ilyen makró szövegét, amely elvégzi az összes munkát:

Sub SetChartColorsFromDataCells() If TypeName(Selection) <> "ChartArea" then MsgBox "Сначала выделите диаграмму!" Kilépés az alvégből, ha beállítva c = ActiveChart For j = 1 To c.SeriesCollection.Count f = c.SeriesCollection(j). Formula m = Split(f, ",") Állítsa be r = Tartomány(m(2)) i-hez = 1 - r.Cells.Count c.SeriesCollection(j).Points(i).Format.Fill.ForeColor.RGB = _ r.Cells(i).Interior.Color Next i Next j End Sub  

Most bezárhatja a Visual Basic programot, és visszatérhet az Excelhez. A létrehozott makró használata nagyon egyszerű. Válassza ki a diagramot (diagram területét, ne a diagram területét, rácsát vagy oszlopait!):

és futtassa a makrónkat a gombbal makrók lap fejlesztő (Fejlesztő – Makrók) vagy billentyűkóddal Alt + F8. Ugyanebben az ablakban gyakori használat esetén a gomb segítségével billentyűparancsot rendelhet a makróhoz paraméterek (Lehetőségek).

PS

Az egyetlen hiba az, hogy nem lehet hasonló funkciót használni olyan esetekben, amikor a színt a forrásadatok celláihoz feltételes formázási szabályokkal rendelik hozzá. Sajnos a Visual Basic nem rendelkezik beépített eszközzel ezeknek a színeknek a leolvasására. Természetesen vannak bizonyos „mankók”, de nem minden esetben és nem minden változatban működnek.

  • Mik azok a makrók, hogyan kell használni őket, hova kell beszúrni a makrókódot a Visual Basicben
  • Feltételes formázás az Excelben 2007-2013
  • Az Excel 2013 diagramjainak újdonságai

Hagy egy Válaszol