Létrehozás cella oszlopdiagramon - Excel tippek

Egy cseh köztársaságbeli olvasó egy százalékos szemléltetés céljából kérdezett egy cellán belüli diagram létrehozásáról.

Ha egy cella értéke 37% volt, hogyan tölthetem ki a cella 37% -át alulról egy színnel?

Mala Singh, a Graphics részlegünkből, előállt ezzel az érdekes megoldással a kívánt hatás elérése érdekében. Mala készített egy munkalapot, ahol minden sor valójában 2 összevont sorból áll. A B2 és B3 sejteket egyetlen cellába egyesítik. Amikor a B2 értékét megváltoztatja, a munkalap ablaktáblájában található VBA-kód egy része automatikusan beállítja a 2. és 3. sor magasságát. A C3 cella kék színű, a C2 cella pedig fehér. Ennek eredményeként úgy tűnik, hogy a C oszlop oszlopdiagramot mutat a cellában. Ez a kép a kék sáv különböző magasságait mutatja a C2 – C13 cellákban.

Az első lépés a B2 és B3 cellák egyesítése egyetlen cellává. Kiválasztja a B2 és B3 cellákat. A menüből válassza a Formátum, Cellák lehetőséget. Lépjen az Igazítás fülre. Jelölje be a Célok egyesítése jelölőnégyzetet. Ez azt eredményezi, hogy a B2 és B3 egyetlen, B2 nevű cellaként fog működni.

Hagyja a C2 cellát kitöltés nélkül, és használjon bármilyen színtöltést a C3 cellához.

Ennek a technikának a kódját nem helyezik el egy szokásos modulban. Ez "eseménykezelő" kód, amelyet az adott munkalap kódmodulján kell elhelyezni. Olvassa el az Eseménymakró útvonal és fájlnév hozzáadása az Excel fejléchez című cikket, amely bemutatja, hogyan nyissa meg a munkalap kódmodulját.

Írja be a következő kódot a Sheet1 (vagy bármely más munkalap) kódmoduljába.

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

A B oszlopban megismételheti a sejtpárok egyesítésének folyamatát.

Köszönet Mala Singh-nek ezért a megoldásért. A Mala egyedi igényeket kielégítő grafikus megoldásokat tervezhet. Közreműködött a VBA és az Excel makrói diagramtervezésében.

érdekes cikkek...