Цвет фигуры в excel в зависимости от значения

Изменение цвета фигуры на основе определенного значения ячейки может быть интересной задачей в Excel, например, если значение ячейки в A1 меньше 100, цвет фигуры красный, если A1 больше 100 и меньше 200, цвет фигуры желтый, а когда A1 больше 200, цвет фигуры зеленый, как показано на следующем снимке экрана. Чтобы изменить цвет фигуры на основе значения ячейки, эта статья познакомит вас с методом.

документ изменить цвет формы 1

Изменить цвет формы на основе значения ячейки с кодом VBA


стрелка синий правый пузырь Изменить цвет формы на основе значения ячейки с кодом VBA

Приведенный ниже код VBA может помочь вам изменить цвет формы в зависимости от значения ячейки, пожалуйста, сделайте следующее:

1. Щелкните правой кнопкой мыши вкладку листа, цвет фигуры которой вы хотите изменить, а затем выберите Просмотреть код из контекстного меню во всплывающем Microsoft Visual Basic для приложений окна, скопируйте и вставьте следующий код в пустое Модули окно.

Код VBA: изменение цвета формы в зависимости от значения ячейки:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice 20160704
    If Intersect(Target, Range("A1")) Is Nothing Then Exit Sub
    If IsNumeric(Target.Value) Then
        If Target.Value < 100 Then
            ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbRed
        ElseIf Target.Value >= 100 And Target.Value < 200 Then
            ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbYellow
        Else
            ActiveSheet.Shapes("Oval 1").Fill.ForeColor.RGB = vbGreen
        End If
    End If
End Sub

документ изменить цвет формы 2

2. А затем, когда вы вводите значение в ячейку A1, цвет фигуры будет изменен на значение ячейки, как вы определили.

Внимание: В приведенном выше коде A1 — значение ячейки, на основе которого будет изменен цвет вашей фигуры, а Овал 1 — это имя вашей вставленной фигуры, вы можете изменить их по своему усмотрению.


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Комментарии (21)


Номинальный 4 из 5


·


рейтинги 1

 

goga63

Пользователь

Сообщений: 25
Регистрация: 01.01.1970

Имеется карта (нарисована фигурами) можно ли менять цвет районов в зависимости от показателей в таблице ?

 

LightZ

Пользователь

Сообщений: 1748
Регистрация: 22.12.2012

Я думаю, что сначала нужно дать названия всем фигурам, а потом составить таблицу: название — показатель — цвет.  
Сделаете?  
Тогда макрос можно будет быстро написать.

Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?

 

goga63

Пользователь

Сообщений: 25
Регистрация: 01.01.1970

{quote}{login=LightZ}{date=11.10.2012 10:49}{thema=}{post} название — показатель — цвет.{/post}{/quote}Названия присвоил, а цвет это условное форматирование в таблице

 

Какие цвета при показателях 1, 3, 4, 6, 7, 9?

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

Аноним, с простым то условным форматированием не всё так просто

http://www.planetaexcel.ru/forum.php?thread_id=31265  

хотя и решаемо.  
А тут ColorScale — то есть интерполяция по цветовой шкале. Можно найти, конечно, алгоритмы этого дела. Только будете ли это делать?

 

ber$erk

Пользователь

Сообщений: 2735
Регистрация: 25.12.2012

http://www.planetaexcel.ru/forum.php?thread_id=10307    

думаю Вам поможет    
________________________    
khafizovtt@gmail.com

Учимся сами и помогаем другим…

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

Набросал вариант без условного форматирования. На листе детсады жмём кнопку для раскраски значений количества и фигур (раскрашиваются только фигуры свободного рисования, остальные игнорируются даже при наличии правильного имени). На листе цвет задаём диапазоны и цвет (можно формулами или вручную, можно и число диапазонов увеличитьуменьшить).

 

goga63

Пользователь

Сообщений: 25
Регистрация: 01.01.1970

Спасибо, буду разбираться.

 

Здравствуйте! На основе представленного файла  post_370180.zip хотел сделать карту Астраханской области  из 13-ти территорий (районов и городов). Мало понимая в макросах изменил диапазон под соответствующее количество фигур. Ячейки   «цвет» и «предел» на листе Цвет срабатывают  правильно, а на карте окрашиваются только семь территорий из 13. Пробовал перерисовывать, переименовывать – никак. Помогите, хочу использовать эту карту в итоговом отчёте за год. И посоветуйте, как лучше вывести на печать.  
<EM><STRONG>Файл удален</STRONG> — велик размер — [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

ДОДО, а зачем Вы дублируете сообщения по разным темам? Да ещё и Правила нарушаете…

 

Постараюсь больше не нарушать, это случайно получилось

 

Осознал, проникся, однако не уверен, что всё правильно сделал

colorMap30.xls

 

anvg

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

ДОДО  
У вас часть названий районов на листе Районы содержат пробелы в конце названий — удалите и будет работать. Енотаевский — группа, а не свободнонарисованный полигон, соответственно, как выше писал — (раскрашиваются только фигуры свободного рисования, остальные игнорируются даже при наличии правильного имени)

 

Спасибо, буду исправлять. А Енотаевский  район географически делит Калмыкия, прихватившая кусок Волги, рыбаки и туристы в курсе (п.Цаган -Аман), что можно будет на схеме игнорировать. С наступающим Новым Годом!

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

 

ДОДО

Гость

#16

16.12.2012 01:30:35

А как можно перенести полученную карту в Word? Простым копированием не получается

Окрашивание фигур в зависимости от значения в ячейке?

Gold_Barsik

Дата: Воскресенье, 22.07.2018, 22:28 |
Сообщение № 1

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Как сделать, чтобы фигуры указателя уровня топлива окрашивались в оранжевый цвет в зависимости от значения в ячейке L4. Снизу в вверх. В соответствии с диапазоном цифр в фигурах.

К сообщению приложен файл:

0204212.xls
(51.0 Kb)

Сообщение отредактировал Gold_BarsikВоскресенье, 22.07.2018, 22:40

 

Ответить

gling

Дата: Воскресенье, 22.07.2018, 22:42 |
Сообщение № 2

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

И Вам здравствовать!
Может использовать не картинки, а ячейки?

К сообщению приложен файл:

7590332.xls
(82.5 Kb)


ЯД-41001506838083

 

Ответить

Gold_Barsik

Дата: Воскресенье, 22.07.2018, 22:48 |
Сообщение № 3

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Доброго времени суток!
пробовал ячейками, но они принимают размеры текста расположенного ниже в рабочем файле. решил энту проблемку заменой на фигуры. но немогу окрашивать их. (((

К сообщению приложен файл:

3061566.xls
(51.0 Kb)

Сообщение отредактировал Gold_BarsikВоскресенье, 22.07.2018, 22:53

 

Ответить

Gold_Barsik

Дата: Воскресенье, 22.07.2018, 22:56 |
Сообщение № 4

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Люди пишут что можно как-то макросом, но мне до этого далеко. :help:

К сообщению приложен файл:

6302179.xls
(54.0 Kb)

Сообщение отредактировал Gold_BarsikВоскресенье, 22.07.2018, 23:20

 

Ответить

gling

Дата: Понедельник, 23.07.2018, 00:04 |
Сообщение № 5

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

Но в Вашем примере тоже сделано в ячейках, а вы хотите перенести это в картинку. Может можно без макроса обойтись? Логику закраски с двумя значениями в ячейке не понял. Нарисуйте это в ячейках и раскрасьте как должно быть. В файле есть скрытый лист.

К сообщению приложен файл:

6206333.xls
(90.0 Kb)


ЯД-41001506838083

Сообщение отредактировал glingПонедельник, 23.07.2018, 00:08

 

Ответить

Gold_Barsik

Дата: Понедельник, 23.07.2018, 00:10 |
Сообщение № 6

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

а как фигуру окрашивать всю целиком, а не половину?

 

Ответить

Gold_Barsik

Дата: Понедельник, 23.07.2018, 00:12 |
Сообщение № 7

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Как вы затолкали в указатель раскраску? Я не допёр.
Как добраться до скрытого листа?

Сообщение отредактировал Gold_BarsikПонедельник, 23.07.2018, 00:16

 

Ответить

gling

Дата: Понедельник, 23.07.2018, 00:15 |
Сообщение № 8

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

Нужно в УФ прописать немного другое условие.

Цитата

Как вы затолкали в указатель раскраску? Я не допёр.

Всё происходит на скрытом листе 1, а картинку сделал с помощью «Камеры». Посмотрите здесь. Открыть скрытый лист так На ярлычек любого листа Правой Кнопкой Мыши (ПКМ)—Показать—выбрать нужный лист.

К сообщению приложен файл:

1459313.xls
(88.0 Kb)


ЯД-41001506838083

Сообщение отредактировал glingПонедельник, 23.07.2018, 00:25

 

Ответить

Gold_Barsik

Дата: Понедельник, 23.07.2018, 00:17 |
Сообщение № 9

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Как добраться до скрытого листа?
немного другое условие — это как?

Сообщение отредактировал Gold_BarsikПонедельник, 23.07.2018, 00:19

 

Ответить

gling

Дата: Понедельник, 23.07.2018, 00:24 |
Сообщение № 10

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

другое условие — это как?

Сравните Условное Форматирование файлов из Сообщений №5 и №8.


ЯД-41001506838083

 

Ответить

Gold_Barsik

Дата: Понедельник, 23.07.2018, 00:28 |
Сообщение № 11

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Не совсем понял.
У меня на этих примерах показывает что УФ не установлен. Или я совсем дуб.

 

Ответить

gling

Дата: Понедельник, 23.07.2018, 00:34 |
Сообщение № 12

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

Всё происходит на скрытом листе 1

Зайдите на Лист1—Выделите столбцы D:E—Нажмите Условное форматирование—Управление правилами—Увидите формулу эти формулы (условия) в файлах разные. Извиняюсь, не учел что у Вас Excel 2003, где там УФ уже не помню, но где то есть это точно, ищите. Если закрашивание изменяется, значит это где то прописано.


ЯД-41001506838083

Сообщение отредактировал glingПонедельник, 23.07.2018, 00:44

 

Ответить

Gold_Barsik

Дата: Понедельник, 23.07.2018, 00:43 |
Сообщение № 13

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

До листа добрался, камеру нашёл, УФ нашёл и …..?

 

Ответить

Gold_Barsik

Дата: Понедельник, 23.07.2018, 00:45 |
Сообщение № 14

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Я так понял, что в зависимости от решения на первом листе, происходит отображение на второй лист в фотокадре?

 

Ответить

gling

Дата: Понедельник, 23.07.2018, 00:46 |
Сообщение № 15

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

И что, не работает или не так закрашивает?


ЯД-41001506838083

 

Ответить

Gold_Barsik

Дата: Понедельник, 23.07.2018, 00:48 |
Сообщение № 16

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Нормально работает, нормально закрашивается. Только от какой ячейки это зависит пока не понял.
Огромное спасибо за помощь!
Буду разбираться.

Сообщение отредактировал Gold_BarsikПонедельник, 23.07.2018, 00:54

 

Ответить

gling

Дата: Понедельник, 23.07.2018, 00:53 |
Сообщение № 17

Группа: Друзья

Ранг: Старожил

Сообщений: 2449


Репутация:

652

±

Замечаний:
0% ±


2010

В №5 от значения в самой ячейке в сравнении с задаваемым значением, а в №8 от ячейки столбца D так же в сравнении с задаваемым.


ЯД-41001506838083

 

Ответить

Gold_Barsik

Дата: Понедельник, 23.07.2018, 00:56 |
Сообщение № 18

Группа: Проверенные

Ранг: Обитатель

Сообщений: 451


Репутация:

6

±

Замечаний:
0% ±


2003

Разобрался. Большое спасибо!

 

Ответить

На чтение 5 мин Опубликовано 26.01.2021

Часто перед пользователями табличного редактора возникает такая задача, когда необходимо придать ячейке определенный цвет в зависимости от ее значения на рабочем листе. Существует множество способов, позволяющих реализовать эту простейшую процедуру. В статье мы детально рассмотрим все варианты, позволяющие дать цвет ячейке в зависимости от ее значения.

Содержание

  1. Процесс редактирования цвета в табличном редакторе
  2. Первый метод: использование условного форматирования
  3. Второй метод: дополнительная вариация использования условного форматирования
  4. Заключение и выводы об окрашивании ячеек в зависимости от значений

Процесс редактирования цвета в табличном редакторе

Табличка, оформленная так, что определенные значения имеют собственный оттенок, позволяет наглядно и структурированно подать информацию. Особенно важно реализовать такую процедуру в табличных файлах, в которых располагается большое количество информации. Цветовая заливка позволит пользователям быстро ориентироваться в больших объемах данных.

Объекты рабочего листа можно «покрасить» самостоятельно, но такой вариант не подходит в тех случаях, когда информации слишком много. Ко всему прочему, при ручной заливке можно допустить несколько ошибок. Существует два автоматических способа, позволяющих реализовать заливку ячейки цветом. Рассмотрим каждый метод более подробно.

Первый метод: использование условного форматирования

Условное форматирование позволяет указать конкретные границы показателей, при которых поля рабочего листа будут окрашены в определенный цвет. «Покраска» происходит автоматическим образом. Если показатель ячейки выйдет за рамки границы, то автоматически реализуется перекраска этого объекта рабочего листа.

Рассмотрим на определенном примере работу этого метода. К примеру, у нас есть табличка, в которой отображена помесячная прибыль определенной организации. Цель: обозначить различными цветами элементы, в которых размер прибыли ниже 400000 р., от 400000 до 500000 р., а также более 500000 р. Подробная инструкция выглядит так:

  1. Производим выделение колонки, в которой располагаются данные по прибыли организации. Передвигаемся в подраздел «Главная». Кликаем на кнопку «Условное форматирование», располагающуюся в блоке команд «Стили». В раскрывшемся перечне щелкаем на элемент «Управления правилами…».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. На дисплее возникло окошко, имеющее наименование «Диспетчер правил условного форматирования». В строчку «Показатель правила форматирования для» устанавливаем элемент «Текущий фрагмент». Для подтверждения внесенных настроек кликаем на «Создать правило…».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. На экране появилось окошко, имеющее наименование «Создание правила форматирования». В окошке «Выберите тип правила:» выбираем элемент «Форматировать только ячейки, которые содержат». В 1-ой строчке указываем параметр «Значения». Во 2-ой строчке указываем параметр «Меньше». В 3-ей строчке указываем показатель 400000. Для подтверждения внесенных настроек кликаем на «Формат…».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. На дисплее возникло окошко, имеющее наименование «Формат ячеек». Передвигаемся в подраздел «Заливка». Осуществляем выбор того оттенка, который мы планируем задать ячейкам с показателями меньше 400000. Для подтверждения внесенных настроек кликаем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. Осуществляем возврат в предыдущее окошко и жмем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. Снова оказались в окошке «Диспетчер правил условного форматирования». Сюда добавилось созданное нами правило. Ещё раз кликаем на элемент «Создать правило…».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. На экране снова появилось окошко, имеющее наименование «Создание правила форматирования». В окошке «Выберите тип правила:» выбираем элемент «Форматировать только ячейки, которые содержат». В 1-ой строчке указываем параметр «Значения». Во 2-ой строчке указываем параметр «Между». В 3-ей строчке указываем показатель 400000. В 4-ой строчке указываем значение 500000. Для подтверждения внесенных настроек кликаем на «Формат…».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. На дисплее возникло окошко, имеющее наименование «Формат ячеек». Передвигаемся в подраздел «Заливка». Осуществляем выбор другого оттенка, который мы планируем задать ячейкам с показателями между 400000 и 500000. Для подтверждения внесенных настроек кликаем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. Осуществляем возврат в предыдущее окошко и жмем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. В окошке «Диспетчер правил условного форматирования» мы уже имеем 2 созданных правила. Осталось добавить еще одно. Ещё раз кликаем на элемент «Создать правило…».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. На экране снова появилось окошко, имеющее наименование «Создание правила форматирования». В окошке «Выберите тип правила:» выбираем элемент «Форматировать только ячейки, которые содержат». В 1-ой строчке указываем параметр «Значения». Во 2-ой строчке указываем параметр «больше». В 3-ьей строчке указываем показатель 500000. Для подтверждения внесенных настроек кликаем на «Формат…».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. На дисплее возникло окошко, имеющее наименование «Формат ячеек». Передвигаемся в подраздел «Заливка». Осуществляем выбор другого оттенка, отличающегося от двух предыдущих, который мы планируем задать ячейкам с показателями больше 500000. Для подтверждения внесенных настроек кликаем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. Осуществляем возврат в предыдущее окошко и жмем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. Мы создали три правила. Щёлкаем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. Готово! Мы реализовали окрашивание согласно указанным правилам.

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

Если отредактировать наполнение какой-либо ячейки, выйдя за рамки 1-го из указанных правил, то ячейка самостоятельно изменит оттенок.

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

Второй метод: дополнительная вариация использования условного форматирования

При помощи условного форматирования можно реализовать окрашивание и другим способом. Подробная инструкция выглядит так:

  1. Оказавшись в окошке, имеющем наименование «Создание правила форматирования», выбираем элемент «Форматировать ячейки на основании их значений». В строчке «Цвет» выбираем тот оттенок, которым мы планируем окрасить объекты рабочего листа. Щёлкаем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. В окне «Диспетчер правил» щёлкаем на «ОК».

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

  1. В результате проделанных действий ячейки выбранного столбика окрасились разнообразными оттенками выбранного цвета. Большие показатели окрашиваются в более светлые оттенки, а меньшие – в более темные.

Как "раскрасить" ячейку в зависимости от ее значения в таблице Excel

Заключение и выводы об окрашивании ячеек в зависимости от значений

Мы выяснили, что существует несколько способов, позволяющих окрасить ячейки в зависимости от значений. Все действия осуществляются при помощи условного форматирования. Каждый пользователь может самостоятельно выбрать наиболее удобный для себя метод.

Оцените качество статьи. Нам важно ваше мнение:

5 / 3 / 2

Регистрация: 17.02.2016

Сообщений: 344

1

Окрас фигур по значению в ячейке

29.11.2016, 19:28. Показов 4217. Ответов 5


Студворк — интернет-сервис помощи студентам

Добрый день, подскажите пожалуйста как окрасить фигуры в экселе по значению в ячейке, т.е. в примере на листе1 есть 4 фигуры созданные в экселе, надо чтоб каждая фигура окрашивалась по значению в ячейке на листе2 (Название столбца «окрас по значению в ячейке») согласно легенде, файл прилогаю

Наименование фигуры окрас по значению в ячейке     легенда
Полилиния 2 1     1 = желтое
Полилиния 5 2     2 = красное
Полилиния 6 1     3 = розовое
Полилиния 7 3     4 = белое



0



5 / 3 / 2

Регистрация: 17.02.2016

Сообщений: 344

29.11.2016, 22:02

 [ТС]

2

всем спасибо, написал сам, но было бы интересно посмотреть другой код м.б. он лучше чем мой реализовал через таргет, по цвету соседней ячейки в легенде, проще говоря если 1 то цвет берется из легенды (предварительно залив ячейки нужным цветом)



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

29.11.2016, 22:49

3

Лучший ответ Сообщение было отмечено АЛКС как решение

Решение

АЛКС,

Visual Basic
1
2
3
4
5
6
7
Sub Alks()
Dim cols(), c As Range
  cols = Array(, vbYellow, vbRed, &HCBC0FF, vbWhite)
  For Each c In Sheets("Лист2").Range("B7", Sheets("Лист2").Cells(Rows.Count, "B").End(xlUp))
    Sheets("Лист1").Shapes(c.Value).Fill.ForeColor.RGB = cols(c.Offset(, 1))
  Next
End Sub



2



АЛКС

5 / 3 / 2

Регистрация: 17.02.2016

Сообщений: 344

30.11.2016, 20:28

 [ТС]

4

Казанский, отличный у Вас код, подскажите пожалуйста как можно оптимизировать мой код (фигур очень много для закраски) по пытался переделать на Ваш, не получилось, у Вас он отличный но цвета заранее фиксированные в коде, а мне бы чтоб цвета из ячейки можно было брать или если можно лучше Ваш код чуть чуть дополните цветами из ячеек

вот мой громоздкий код

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Private Sub Worksheet_Change(ByVal Target As Range)
Dim x1 As Shape, x2 As Shape
Set x1 = Sheets("Лист2").Shapes("название фигуры1")
Set x2 = Sheets("Лист2").Shapes("название фигуры2")
Set x3 = Sheets("Лист2").Shapes("название фигуры3")
Set x3 = Sheets("Лист2").Shapes("название фигуры4")
 
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("c7")) Is Nothing Then
        Select Case Target.Value
            Case 1
                x1.Fill.ForeColor.RGB = Range("j2").Interior.Color
            Case 2
                x1.Fill.ForeColor.RGB = Range("j3").Interior.Color
            Case 3
                x1.Fill.ForeColor.RGB = Range("j4").Interior.Color
            Case 4
                x1.Fill.ForeColor.RGB = Range("j5").Interior.Color
            Case 5
                x1.Fill.ForeColor.RGB = Range("j6").Interior.Color
            Case 10
                x1.Fill.ForeColor.RGB = Range("j7").Interior.Color
        End Select
    End If
    If Target.Cells.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("c8")) Is Nothing Then
        Select Case Target.Value
            Case 1
                x2.Fill.ForeColor.RGB = Range("j2").Interior.Color
            Case 2
                x2.Fill.ForeColor.RGB = Range("j3").Interior.Color
            Case 3
                x2.Fill.ForeColor.RGB = Range("j4").Interior.Color
            Case 4
                x2.Fill.ForeColor.RGB = Range("j5").Interior.Color
            Case 5
                x2.Fill.ForeColor.RGB = Range("j6").Interior.Color
            Case 10
                x2.Fill.ForeColor.RGB = Range("j7").Interior.Color
        End Select
    End If
    If Not Intersect(Target, Range("c9")) Is Nothing Then
        Select Case Target.Value
            Case 1
                x3.Fill.ForeColor.RGB = Range("j2").Interior.Color
            Case 2
                x3.Fill.ForeColor.RGB = Range("j3").Interior.Color
            Case 3
                x3.Fill.ForeColor.RGB = Range("j4").Interior.Color
            Case 4
                x3.Fill.ForeColor.RGB = Range("j5").Interior.Color
            Case 5
                x3.Fill.ForeColor.RGB = Range("j6").Interior.Color
            Case 10
                x3.Fill.ForeColor.RGB = Range("j7").Interior.Color
        End Select
    End If
    
End Sub

Добавлено через 17 минут
чуточку опечатался последний не x3 a x4



0



Казанский

15136 / 6410 / 1730

Регистрация: 24.09.2011

Сообщений: 9,999

04.12.2016, 19:53

5

Лучший ответ Сообщение было отмечено АЛКС как решение

Решение

АЛКС, нет файла, соответствующего коду. Приспособил файл из первого поста, вот что получилось.
Можно менять сразу несколько ячеек из диапазона C7:C10 (автозаполнение, вставка).

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
Private Sub Worksheet_Change(ByVal Target As Range)
Dim c As Range
  On Error Resume Next
  For Each c In Intersect(Target, Range("C7:C10"))
    Select Case c.Value
    Case 1 To 5
      Sheets("Лист2").Shapes(c.Offset(, -1).Value).Fill.ForeColor.RGB = Range("j1").Offset(c.Value).Interior.Color
    Case 10
      Sheets("Лист2").Shapes(c.Offset(, -1).Value).Fill.ForeColor.RGB = Range("j7").Interior.Color
    End Select
  Next
End Sub

Вложения

Тип файла: xls фигура.xls (53.5 Кб, 58 просмотров)



2



0 / 0 / 0

Регистрация: 07.03.2019

Сообщений: 4

23.04.2021, 09:09

6

Казанский,
Добрый день, скажите как приспособить ваш макрос под такой вариант, перечислены номера комнат. У каждой из комнат может быть один из статусов — сдана, не сдана, готовится к сдаче. Как применять к фигурам имена, а вместо цифр прописывать статус?



0



Понравилась статья? Поделить с друзьями:
  • Цвет тени в word
  • Цвет ячеек миф excel
  • Цвет текста красным в excel
  • Цвет ячеек в зависимости от соседних ячеек в excel
  • Цвет текста в ячейке excel формула