Čtenář z České republiky se zeptal na vytvoření grafu v buňce pro ilustraci procenta.
Pokud byla hodnota v buňce 37%, jak mohu vyplnit 37% buňky zespodu barvou?

Mala Singh z naší grafické divize přišla s tímto zajímavým řešením, aby přinesla požadovaný efekt. Mala vytvořila list, kde se každý řádek ve skutečnosti skládá ze 2 sloučených řádků. Buňky B2 a B3 jsou sloučeny dohromady do jedné buňky. Když se změní hodnota v B2, trochu kódu VBA v podokně listu automaticky upraví výšku řádku 2 a řádku 3. Buňka C3 má modrou barvu a buňka C2 bílou barvu. Výsledkem je, že se ve sloupci C zobrazuje sloupcový graf v buňce. Tento obrázek ukazuje různé výšky modrého pruhu v buňkách C2 až C13.

Prvním krokem je sloučení buněk B2 a B3 do jedné buňky. Vyberete buňky B2 a B3. Z nabídky vyberte Formát, Buňky. Přejděte na kartu Zarovnání. Zaškrtněte políčko Sloučit buňky. To způsobí, že B2 & B3 fungují jako jedna buňka zvaná B2.
Buňku C2 nechejte bez výplně a pro buňku C3 použijte libovolnou barevnou výplň.
Kód pro tuto techniku není umístěn v běžném modulu. Jedná se o kód „obslužné rutiny události“ a musí být umístěn v modulu kódu pro tento konkrétní list. V článku Makro události a přidáním cesty a názvu souboru do záhlaví aplikace Excel naleznete vizuál, jak otevřít modul kódu pro list.
Zadejte následující kód do modulu kódu pro List1 (nebo jakýkoli list, se kterým pracujete).
Private Sub Worksheet_Change(ByVal Target As Range) Dim cell As Range For Each cell In Target.Cells If cell.Column = 2 And cell.Row> 1 Then If cell.Value> 1 Or cell.Value < 0 Then cell.Select MsgBox ("Value must be between 0 and 100%") End If If IsEmpty(cell) Or cell.Value = 0 Then cell.Range("B1:B2").RowHeight = 25 'cell.Range("B2").Interior.ColorIndex = xlNone Else On Error Resume Next cell.Range("B1").RowHeight = 50 * (1 - cell.Value) With cell.Range("B2") .RowHeight = 50 * cell.Value '.Interior.Color = RGB(0, 0, 255) On Error GoTo 0 End With End If End If Next End Sub
Proces sloučení párů buněk můžete opakovat ve sloupci B.
Děkuji Mala Singh za toto řešení. Mala může navrhnout vlastní řešení mapování, aby vyhovělo všem potřebám. Přispěl do kapitoly grafů ve VBA a Makra pro Excel.