Читач із Чеської Республіки запитав про створення внутрішньоклітинної діаграми, щоб проілюструвати відсоток.
Якщо значення в комірці становило 37%, як я можу заповнити кольором 37% клітини знизу?

Мала Сінгх з нашого відділу графіки придумала це цікаве рішення для отримання бажаного ефекту. Мала створила робочий аркуш, де кожен рядок фактично складається з 2 об’єднаних рядків. Клітини B2 і B3 об'єднуються разом в одній комірці. Коли значення в B2 змінюється, трохи коду VBA на панелі робочого аркуша автоматично регулює висоту рядка 2 та рядка 3. Осередок C3 забарвлюється в синій колір, а клітинка C2 - у білий. Ефект полягає в тому, що в колонці C відображається стовпчаста діаграма. Це зображення показує різну висоту синьої смуги в клітинках від C2 до C13.

Першим кроком є об’єднання комірок B2 і B3 в одну комірку. Ви оберете клітинки B2 і B3. У меню виберіть Формат, Клітини. Перейдіть на вкладку Вирівнювання. Установіть прапорець для об’єднання комірок. Це призведе до того, що B2 & B3 діятимуть як одна клітина під назвою B2.
Залиште клітинку C2 без заливки та використовуйте кольорову заливку для комірки C3.
Код цієї техніки не поміщений у звичайний модуль. Це код "обробника подій", і його потрібно розмістити на модулі коду для цього конкретного аркуша. Прочитайте статтю «Макрос подій», щоб додати шлях та ім’я файлу до заголовка Excel, щоб дізнатись, як відкрити модуль коду для робочого аркуша.
Введіть наступний код у модулі коду для Sheet1 (або будь-якого листа, з яким ви працюєте).
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
Ви можете повторити процес злиття пар клітинок у стовпці B.
Дякую Мала Сінгх за це рішення. Mala може розробити власні графічні рішення для задоволення будь-яких потреб. Він взяв участь у графічному графіку у VBA та Macros для Excel.