Opret i cellekolonnediagram - Excel-tip

Indholdsfortegnelse

En læser fra Tjekkiet spurgte om at oprette et cellediagram for at illustrere en procentdel.

Hvis værdien i en celle var 37%, hvordan kan jeg fylde 37% af cellen fra bunden med en farve?

Mala Singh fra vores grafik-afdeling kom med denne interessante løsning til at producere den ønskede effekt. Mala byggede et regneark, hvor hver række faktisk består af 2 flettede rækker. Celler B2 og B3 flettes sammen i en enkelt celle. Når værdien i B2 ændres, vil en smule VBA-kode i regnearksruden automatisk justere højden på række 2 og række 3. Celle C3 er farvet blå og celle C2 er farvet hvid. Effekten er, at kolonne C ser ud til at vise et søjlediagram i cellen. Dette billede viser forskellige højder af den blå bjælke i cellerne C2 til og med C13.

Det første trin er at flette cellerne B2 og B3 til en enkelt celle. Du vælger cellerne B2 og B3. Vælg Format, celler i menuen. Gå til fanen Justering. Marker afkrydsningsfeltet for Flet celler. Dette får B2 & B3 til at fungere som en enkelt celle kaldet B2.

Efterlad celle C2 uden fyld, og brug en hvilken som helst farvefyldning til celle C3.

Kode til denne teknik placeres ikke i et almindeligt modul. Det er en "begivenhedshåndterer" -kode og skal placeres på kodemodulet til dette særlige regneark. Læs begivenhedsmakro for at tilføje sti og filnavn til Excel Header-artiklen for at få et billede af, hvordan du åbner kodemodulet til et regneark.

Indtast følgende kode på kodemodulet til Sheet1 (eller hvilket ark du arbejder med).

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

Du kan gentage processen med at flette par af celler i kolonne B.

Tak til Mala Singh for denne løsning. Mala kan designe tilpassede kortløsninger, der imødekommer ethvert behov. Han bidrog til kortlægningskapitlet i VBA og Makroer til Excel.

Interessante artikler...