Bralec s Češke je vprašal o ustvarjanju grafikona v celici, da bi ponazoril odstotek.
Če je bila vrednost v celici 37%, kako lahko z barvo napolnim 37% celice od spodaj?

Mala Singh iz našega oddelka za grafiko je pripravila to zanimivo rešitev, da je ustvarila želeni učinek. Mala je izdelala delovni list, kjer je vsaka vrstica dejansko sestavljena iz 2 združenih vrstic. Celici B2 in B3 sta združeni v eni celici. Ko se vrednost v B2 spremeni, bo del kode VBA v podoknu delovnega lista samodejno prilagodil višino vrstice 2 in vrstice 3. Celica C3 je obarvana modro, celica C2 pa bela. Učinek je tak, da se zdi, da stolpec C prikazuje celico v stolpcu. Ta slika prikazuje različne višine modre vrstice v celicah od C2 do C13.

Prvi korak je združitev celic B2 in B3 v eno celico. Izbrali boste celice B2 in B3. V meniju izberite Oblika, Celice. Pojdite na zavihek Poravnava. Potrdite polje za Spajanje celic. To bo povzročilo, da B2 & B3 delujeta kot ena celica, imenovana B2.
Pustite celico C2 brez polnila in uporabite katero koli barvno polnilo za celico C3.
Koda za to tehniko ni v običajnem modulu. To je koda "obdelovalca dogodkov" in jo je treba namestiti na modul kode za ta delovni list. Preberite članek Makro dogodkov za dodajanje poti in imena datoteke v glavo Excelove glave, v katerem je opisano, kako odpreti modul kode za delovni list.
V kodni modul za Sheet1 (ali kateri koli list, s katerim delate) vnesite naslednjo kodo.
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
Postopek združevanja parov celic lahko ponovite v stolpcu B.
Hvala Mali Singh za to rešitev. Mala lahko oblikuje rešitve po meri, ki ustrezajo vsem potrebam. Sodeloval je v poglavju za grafikone v VBA in Macros for Excel.