Если цвет ячейки желтый то excel vba
Как из VB6 менять цвет заливки ячейки в Excel'е
Помогите кто чем может, плз. Желательно пример.
Excel: макрос для заливки ячейки, если в диапазоне строк есть какой-то цвет
Необходимо написать макрос, который будет закрашивать ячейку, если в каком то диапазоне ( ячейка не.
Определять, был ли изменен цвет фона (заливки) данной ячейки после снятия с нее фокуса
Имеется лист с таблицей. Задача следующая, нужно определять был ли изменен цвет фона (заливки).
Попробуй включить запись макроса — залей ячейку — посмотри код.
(Я так почти все ответы и нахожу — записью выполняемых команд.)
Попробуй включить запись макроса — залей ячейку — посмотри код.
(Я так почти все ответы и нахожу — записью выполняемых команд.)
В Excel 2003 макросы макрорекордер включался так (см. картинку). После записи нужных действий не забудьте отключить рекордер! А в каком диапазоне меняется i и jДумаю пробелема тут А в каком диапазоне меняется i и j
Думаю пробелема тут Нет, выше аналогичная процедура с двумя циклами, все работает
там не используется interior Попробуйте тогда вместо ColorIndex поставить Color Попробуйте тогда вместо ColorIndex поставить Color Тоже самое!
Может это потому что в ячейке вообще никакой заливки нет?! Нет не из за этого у меня без заливки выдает значение
Мож файл прикрепите, так быстрее косяк найдем. Всем спасибо, разобрался я не в ту переменную записывал, та что записывал байтовая, конечно будет переполнение. Продолжу тему:
Вышеприведённые примеры работают только при отсутствии условного форматирования на исследуемой ячейке. Если же цвет заливки изменён условным форматированием, например:
Если, скажем, в ячейке А10 будет находиться "J" (без кавычек), эта ячейка будет синяя (код цвета 15773696), а Вышеприведённые примеры покажут "0".
Может кто подскажет, как определить ВИДИМЫЙ цвет ячейки?
Кстати: автофильтр по цвету учитывает именно ВИДИМЫЙ цвет, но понять из записанного макроса как определить цвет конкретной ячейки не представляется возможным:
Взаимодействие с Excel: Получить цвет заливки ячейки
Каким образом можно получить цвет заливки ячейки в Excel? И сопутсвующий вопрос: присвоить цвет.
Цвет активной ячейки DataGridView
После удаления текущей строки в ентом компоненте через раз теряется цвет активной ячейки (рисунки.
Как можно изменит цвет ячейки таблици?
Как можно изменит цвет фона ячейки таблици. когда курсор направлен к нему?
Начиная с Excel 2007 основным способом заливки диапазона или отдельной ячейки цветом (зарисовки, добавления, изменения фона) является использование свойства .Interior.Color объекта Range путем присваивания ему значения цвета в виде десятичного числа от 0 до 16777215 (всего 16777216 цветов).
Заливка ячейки цветом в VBA Excel
Пример кода 1:
Range ( "C12:D17" ) . Cells ( 4 ) . Interior . Color = 568569Поместите пример кода в свой программный модуль и нажмите кнопку на панели инструментов «Run Sub» или на клавиатуре «F5», курсор должен быть внутри выполняемой программы. На активном листе Excel ячейки и диапазон, выбранные в коде, окрасятся в соответствующие цвета.
Есть один интересный нюанс: если присвоить свойству .Interior.Color отрицательное значение от -16777215 до -1, то цвет будет соответствовать значению, равному сумме максимального значения палитры (16777215) и присвоенного отрицательного значения. Например, заливка всех трех ячеек после выполнения следующего кода будет одинакова:
Cells ( 2 , 1 ) . Interior . Color = 16777215 + ( - 12207890 )Проверено в Excel 2016.
Пример кода 2:
Использование предопределенных констант
В VBA Excel есть предопределенные константы часто используемых цветов для заливки ячеек:
Предопределенная константа | Наименование цвета |
---|---|
vbBlack | Черный |
vbBlue | Голубой |
vbCyan | Бирюзовый |
vbGreen | Зеленый |
vbMagenta | Пурпурный |
vbRed | Красный |
vbWhite | Белый |
vbYellow | Желтый |
xlNone | Нет заливки |
Присваивается цвет ячейке предопределенной константой в VBA Excel точно так же, как и числовым значением:
Пример кода 3:
Цветовая модель RGB
Цветовая система RGB представляет собой комбинацию различных по интенсивности основных трех цветов: красного, зеленого и синего. Они могут принимать значения от 0 до 255. Если все значения равны 0 — это черный цвет, если все значения равны 255 — это белый цвет.
Выбрать цвет и узнать его значения RGB можно с помощью палитры Excel:
Чтобы можно было присвоить ячейке или диапазону цвет с помощью значений RGB, их необходимо перевести в десятичное число, обозначающее цвет. Для этого существует функция VBA Excel, которая так и называется — RGB.
Пример кода 4:
Очистка ячейки (диапазона) от заливки
Для очистки ячейки (диапазона) от заливки используется константа xlNone :
Свойство .Interior.ColorIndex объекта Range
Пример кода 5:
Просмотреть ограниченную палитру для заливки ячеек фоном можно, запустив в VBA Excel простейший макрос:
Пример кода 6:
Номера строк активного листа от 1 до 56 будут соответствовать индексу цвета, а ячейка в первом столбце будет залита соответствующим индексу фоном.
Готовую стандартную палитру из 56 цветов можете посмотреть здесь.
Содержание рубрики VBA Excel по тематическим разделам со ссылками на все статьи.59 комментариев для “VBA Excel. Цвет ячейки (заливка, фон)”
Спасибо, наконец то разобрался во всех перипетиях заливки и цвета шрифта.
Пожалуйста, Виктор. Очень рад, что статья пригодилась.
как проверить наличие фона?
Подскажите пожалуйста, как можно посчитать количество залитых определенным цветом ячеек в таблице?
Привет, Иван!
Посчитать ячейки с одинаковым фоном можно с помощью цикла.
Для реализации этого примера сначала выбираем в таблице ячейку с нужным цветом заливки. Затем запускаем код, который определяет цветовой индекс фона активной ячейки, диапазон таблицы вокруг нее и общее количество ячеек с такой заливкой в таблице.
Каким образом можно использовать не в процедуре, а именно в пользовательской функции VBA свойство .Interior.Color?
Скажем, проверять функцией значение какой-то ячейки и подкрашивать ячейку в зависимости от этого.
Фарин, пользовательская функция VBA предназначена только для возврата вычисленного значения в ячейку, в которой она расположена. Она не позволяет внутри себя менять формат своей ячейки, а также значения и форматы других ячеек.
Однако, с помощью пользовательской функции VBA можно вывести значения свойств ячейки, в которой она размещена:
В сети есть эксперименты по изменению значений других ячеек из пользовательской функции VBA, но они могут работать нестабильно и приводить к ошибкам.
Для подкрашивания ячейки в зависимости от ее значения используйте процедуру Sub или штатный инструмент Excel – условное форматирование.
а как можно закрасить только пустые ячейки ?
Евгений, спасибо за ссылку на интересный прием.
Евгений, день добрый.
Подскажите пожалуйста, как назначить ячейке цвет через значение RGB, которое в ней записано. Или цвет другой ячейки.
Привет, Александр!
Используйте функцию InStr, чтобы найти положение разделителей, а дальше функции Left и Mid. Смотрите пример с пробелом в качестве разделителя:
Или еще проще с помощью функции Split:
Range ( "A1" ) . Interior . Color = RGB ( a ( 0 ) , a ( 1 ) , a ( 2 ) )Добрый день!
подскажите, пожалуйста, как можно выводить из таблицы (150 столбцов х 150 строк) адрес ячеек (списком), если они имеют заливку определенного цвета.
Заранее спасибо!
Евгений, спасибо за подсказку.
Все получилось
добрый день! подскажите, пожалуйста, как сделать, чтобы результаты выводились на отдельный лист ?
заранее спасибо!
Добрый день, Алексей!
Примените условное форматирование:
Многие при работе с таблицами любят их окрашивать в различные цвета по "категориям": красный - прогул; синий - больничный; желтый - коммандировка и т.д. и т.п. Это вполне может быть визуально наглядно и красиво, но в последствии хочется по подобной боевой раскраске осуществить с ячейками какие-то иные операции, чем просто полюбоваться. Например: подсчитать количество ячеек определенного цвета, отфильтровать по цвету и т.п. Сегодня я хочу рассказать, как можно защитить ячейки в зависимости от цвета заливки, шрифта. Один из случаев, когда закраска ячеек может быть оправдана - можно каким-то определенным цветом отметить ячейки с формулами, а потом их защитить кодом ниже.
В принципе это можно сделать руками: выделить все ячейки нужного цвета, правая кнопка мыши -Формат ячеек -Защита -Защищаемая ячейка. После чего защитить лист. Подробнее можно прочитать в статье Как разрешить изменять только выбранные ячейки? и в статье Защита листов и ячеек в MS Excel. Но если ячеек много, да еще они разбросаны по листу, то такой метод довольно утомителен. Однако это очень просто сделать при помощи кода ниже:
Как использовать код в своей книге: копируем код выше, в нужной книге переходим в редактор VBA( Alt + F11 ) -Insert -Module. В появившееся окно вставляем скопированный код.
Теперь выделяем все ячейки на листе, среди которых есть те, которые надо защитить -нажимаем сочетание клавиш Alt + F8 и выбираем из списка PrCellsByInterior , если надо защищать ячейки на основании цвета заливки или PrCellsByFont , если защищать надо в зависимости от цвета шрифта.
Защищать ячейки с конкретным цветом получилось, но что делать, если окрашены как раз те ячейки, защищать которые не надо? Да еще и ячейки окрашены разными цветами? Все просто: для защиты выбираем весь диапазон значимых ячеек, а в качестве ячейки-образца с заливкой указываем любую ячейку без заливки. Вот и все. Все ячейки без заливки будут защищены, а с заливкой - разрешены для ввода.
Tips_Macro_LockCellByColor.xls (48,0 KiB, 1 327 скачиваний)
Что важно знать: ячейки, цвет заливки или шрифта которых установлен при помощи условного форматирования, не будут защищены корректно. В этом случае код увидит реальную заливку, а не ту, что отражается.
Здравствуйте. Я не могу разобраться в написании формулы или макроса.
В определенном диапазоне ячеек требуется: в зависимости от цвета ячейки добавить текст с названием цвета в ячейку справа.
Количество цветов ячеек ограниченно.
То есть, если ячейка желтого цвета, то в ячейке справа должен появиться текст "желтый", если красного -"красный".
Нужен код для VBA excel.
HELP ME.
Помощь в написании контрольных, курсовых и дипломных работ здесь
Изменение значения ячейки в зависимости от цвета
Здравствуйте, каким условием проверить диапазон ячеек зеленого цвета, для того, чтобы изменить в.
Прописывание имени столбца в зависимости от цвета ячейки
Привет все. Интересует как сделать так, чтобы прописывалось автоматически имя столбца в котором.
Изменение цвета ячейки в зависимости от даты
Здравствуйте! Помогите пожалуйста. У меня есть список сотрудников, которым нужно раз в год.
Значение функции ЕСЛИ в зависимости от цвета ячейки
Кто поправит, уже пару часов облазил все форумы, вроде сделал всё как по книжке а истину не.
Почему именно VBA? Условным форматированием может удобнее было-бы. Файл нужно прикладывать со своими наработками, что не получилось.
Почему именно VBA? Условным форматированием может удобнее было-бы. Разве можно задать в словном форматировании условие определения цвета?
Формула, прикрепленная выше не работает, что может быть неправильным?
Да, условным форматированием данную задачу нельзя сделать (или я не знаю как).
Вариант условия из первого поста "если ячейка желтого цвета, то в ячейке справа должен появиться текст "желтый", если красного -"красный" можно реализовать циклом по ячейкам из диапазона "справа" и в зависимости от результата в ячейках "слева" писать текст. Для этого в коде нужно запрограммировать соответствие 65535 = "Желтый" и т.д. Например, используя Select Case.
Прикладываю файл, там номера и названия цветов, может пригодится. Поэкспериментировал с цветами, формулой, как Вы хотели, не получается.
Больше мыслей нет.
Читайте также: