Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.65/457: Рейтинг темы: голосов - 457, средняя оценка - 4.65
1 / 1 / 0
Регистрация: 10.12.2011
Сообщений: 7

Закрасить ячейки определенным цветом в зависимости от содержимого

26.10.2012, 10:09. Показов 89160. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я не могу разобраться в создании программы.
Мне нужно в определённом диапазоне: ячейки с текстовым символами - залить красным цветом, ячейки с цифрами - жёлтым цвет, а пустые зелёным.
Нужен код программный.
HELP ME!!!
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.10.2012, 10:09
Ответы с готовыми решениями:

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

Перемещение содержимого ячейки Б в ячейку А при удалении содержимого в ячейке А
Суть проблемы следующая. Имеется диапазон ячеек с текстом в каждой. При выделении любой из ячеек и удалении содержимого в ней, содержимое...

Закрасить ячейки DataGridView определенным цветом в зависимости от содержимого
Может кто знает и подскажет! Есть база данных в Accesse которая имеет две таблицы. На форме я сделал DataGridView в которой при нажатии...

23
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38160 / 21095 / 4306
Регистрация: 12.02.2012
Сообщений: 34,677
Записей в блоге: 14
26.10.2012, 10:25
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Fill_Color(Rg as Range)
Dim cel as Range
      For each cel in Rg
           v=cel.Value
           If isEmpty(v) then
              cel.interior.color=Qbcolor(10)
           elseIf isNumeric(v) then
              cel.interior.color=Qbcolor(14)
           else
              cel.interior.color=Qbcolor(12)
           end if
      Next
End Sub
2
1 / 1 / 0
Регистрация: 10.12.2011
Сообщений: 7
26.10.2012, 10:32  [ТС]
Catstail, а можно по-подробнее? Описать каждую строчку) А то ещё сплю на ходу)
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
26.10.2012, 10:33
Условное форматирование не подойдет?
Вложения
Тип файла: xls УФ.xls (14.0 Кб, 854 просмотров)
0
1 / 1 / 0
Регистрация: 10.12.2011
Сообщений: 7
26.10.2012, 10:40  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
Условное форматирование не подойдет?
Извините, но нет.

Хотя мб и пойдёт, мне нужен код. Я не давно начал изучать VBA, и поэтому желательно с пояснениями.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38160 / 21095 / 4306
Регистрация: 12.02.2012
Сообщений: 34,677
Записей в блоге: 14
26.10.2012, 11:57
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Fill_Color(Rg as Range)  ' на вход процедуре подается параметр - диапазон ячеек
Dim cel as Range                ' рабочая переменная (которая будет пробегать по диапазону)
      For each cel in Rg        ' цикл по всем ячейкам диапазона (у ячейки тип - тоже Range)
           v=cel.Value            ' берем значение очередной ячейки
           If isEmpty(v) then                    ' если ячейка пуста -
              cel.interior.color=Qbcolor(10)   ' заливаем зеленым (код 10)
           elseIf isNumeric(v) then             ' если в ячейке число -
              cel.interior.color=Qbcolor(14)   ' заливаем желтым (код 14)
           else                                       ' иначе
              cel.interior.color=Qbcolor(12)   ' заливаем желтым (код 10)
           end if
      Next
End Sub
Вот запускающая процедура:

Visual Basic
1
2
3
4
5
Sub Start()
 
    Fill_Color Range("A1:B5")
 
End Sub
1
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38160 / 21095 / 4306
Регистрация: 12.02.2012
Сообщений: 34,677
Записей в блоге: 14
26.10.2012, 12:03
Вот и картинка:
Изображения
 
0
6997 / 2895 / 555
Регистрация: 19.10.2012
Сообщений: 8,803
26.10.2012, 13:16
Visual Basic
1
2
3
4
5
6
7
Sub tt()
    With Range("A1:B5")
        .SpecialCells(xlCellTypeBlanks).Interior.Color = vbGreen
        .SpecialCells(xlCellTypeConstants, 1).Interior.Color = vbYellow
        .SpecialCells(xlCellTypeConstants, 2).Interior.Color = vbRed
    End With
End Sub
Добавлено через 9 минут
Либо тоже самое короче, но непонятнее:

Visual Basic
1
2
3
4
5
6
7
Sub tt()
    With Range("A1:B5")
        .SpecialCells(4).Interior.Color = vbGreen
        .SpecialCells(2, 1).Interior.Color = vbYellow
        .SpecialCells(2, 2).Interior.Color = vbRed
    End With
End Sub
4
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38160 / 21095 / 4306
Регистрация: 12.02.2012
Сообщений: 34,677
Записей в блоге: 14
26.10.2012, 14:39
Цитата Сообщение от Hugo121 Посмотреть сообщение
Либо тоже самое короче, но непонятнее:
- а если числа и строки будут расположены по-другому, Ваш код раскрасит их правильно (в соотв. с заданием TC)?
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
26.10.2012, 15:35
Цитата Сообщение от Dels Посмотреть сообщение
- Условное форматирование не подойдет?
- Извините, но нет. Хотя мб и пойдёт, мне нужен код.
Код для применения УФ к выделенному диапазону. Получен правкой кода макрорекордера:
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Макрос1()
Dim a$
a = ActiveCell.Address(0, 0)
With Selection.FormatConditions
    .Delete
    .Add Type:=xlExpression, Formula1:="=ЕТЕКСТ(" & a & ")"
    .Item(1).Interior.ColorIndex = 3
    .Add Type:=xlExpression, Formula1:="=ЕЧИСЛО(" & a & ")"
    .Item(2).Interior.ColorIndex = 27
    .Add Type:=xlExpression, Formula1:="=" & a & "="""""
    .Item(3).Interior.ColorIndex = 4
End With
End Sub
В файле поста #4 было 2 условия УФ, т.е. ячейки изначально имели зеленый фон. Здесь я добавил зеленую заливку в условие УФ. Теперь ячейки, содержащие значение ошибки (это не число, не текст и не пусто) будут оставаться неокрашенными.

Добавлено через 10 минут
Цитата Сообщение от Catstail Посмотреть сообщение
- а если числа и строки будут расположены по-другому, Ваш код раскрасит их правильно (в соотв. с заданием TC)?
Да. С кодом Hugo121 другие проблемы:
1. Надо добавить on error resume next, иначе будет ошибка, если в диапазоне не найдется ячеек указанного типа.
2. Этот метод выбирает только ячейки с константами. Для ячеек с формулами надо дописать такие же команды
Visual Basic
1
2
.SpecialCells(xlCellTypeFormulas, 1).Interior.Color = vbYellow
.SpecialCells(xlCellTypeFormulas, 2).Interior.Color = vbRed
1
1 / 1 / 0
Регистрация: 10.12.2011
Сообщений: 7
30.10.2012, 23:17  [ТС]
Всем доброго времени суток. Не могу понять, что написать для того что бы закрашивались ячейки, в зависимости от содержимого.
Ячейки содержимое которых - цифры нужно закрасить жёлтым цветом.
Ячейки содержимое которых - буквы нужно закрасить синим цветом.
Ячейки у которых нет содержимого(пустые) - нужно закрасить красным цветом.

Приложен файл. Лучше всего писать коды в нём. Заранее благодарю
0
1234 / 424 / 107
Регистрация: 31.03.2012
Сообщений: 1,159
31.10.2012, 10:34
А что мешает поставить правильную задачу в соответствии правилами форума, в частности с п. 4.1
Если стандартный поиск по форуму не дал результатов, то даю наВодку, как искать по форуму с помощью гугла на этом или любом другом сайте. В поисковой строке вбиваем: site:сyberforum.ru(пробел)искомый_текст
Цитата Сообщение от Dels Посмотреть сообщение
Приложен файл. Лучше всего писать коды в нём.
Куда приложен?, где лучше писАть коды?

Не по теме:

PS. никак не смог избавиться от цитирования cyberforum.ru в качестве ссылки для указания в качестве поисковой строки, потому использовал вместо настоящего пробела - это слово в скобках

0
5472 / 1150 / 50
Регистрация: 15.09.2012
Сообщений: 3,576
31.10.2012, 11:48
Никогда не пользуюсь поиском на этом форуме, т.к. невозможно ничего найти.
Всегда использую Гугл или Яндекс. Кстати через Гугл и Яндекс и находятся темы на этом форуме, поэтому считаю, что в названия тем нужно добавлять название языка программирования, например:
Как сделать то-то в VBA.
Просто по правилам форума нельзя указывать название языка программирования в теме, если тема находится в определённом разделе форума, связанном с этим языком программирования.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38160 / 21095 / 4306
Регистрация: 12.02.2012
Сообщений: 34,677
Записей в блоге: 14
31.10.2012, 12:18
Цитата Сообщение от Казанский Посмотреть сообщение
Да. С кодом Hugo121 другие проблемы:
Да??? Я про вот этот код:
Visual Basic
1
2
3
4
5
6
7
Sub tt()
    With Range("A1:B5")
        .SpecialCells(4).Interior.Color = vbGreen
        .SpecialCells(2, 1).Interior.Color = vbYellow
        .SpecialCells(2, 2).Interior.Color = vbRed
    End With
End Sub

Хотя, действительно ДА. Я неправ...
0
1 / 1 / 0
Регистрация: 10.12.2011
Сообщений: 7
31.10.2012, 12:44  [ТС]
Вот он(файл)
Вложения
Тип файла: rar Книга1.rar (12.9 Кб, 210 просмотров)
0
 Аватар для Оксана33
1 / 1 / 0
Регистрация: 03.12.2014
Сообщений: 329
27.05.2015, 13:34
Catstail, пожалуйста, можно палитру цветов с кодами (если их много)
Буду очень признательна
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38160 / 21095 / 4306
Регистрация: 12.02.2012
Сообщений: 34,677
Записей в блоге: 14
27.05.2015, 14:24
https://www.cyberforum.ru/vba/thread1195784.html
В этом же файле коды цветов
1
 Аватар для Оксана33
1 / 1 / 0
Регистрация: 03.12.2014
Сообщений: 329
27.05.2015, 14:24
Так это же иконки, а мне нужна заливка ячеек
0
3946 / 2339 / 790
Регистрация: 02.11.2012
Сообщений: 6,214
27.05.2015, 14:26
Цитата Сообщение от Оксана33 Посмотреть сообщение
Так это же иконки, а мне нужна заливка ячеек
смотрите лист КОДЫ левее иконок.
Вложения
Тип файла: pdf Коды_цветов.pdf (40.2 Кб, 155 просмотров)
0
 Аватар для Оксана33
1 / 1 / 0
Регистрация: 03.12.2014
Сообщений: 329
27.05.2015, 16:27
нашла, спасибо. открывала коды-0

Добавлено через 1 час 54 минуты
хочу у вас уточнить, та таблица с цветами не имеет отношение к вышеизложенному коду
cel.interior.color=Qbcolor(12)
так как этот код прописывается colorindex=...
а что это Qbcolor и почему Qb?
кажется я это искала https://msdn.microsoft.com/en-... s.90).aspx
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.05.2015, 16:27
Помогаю со студенческими работами здесь

Выделить цветом ячейки в зависимости от содержимого
Здравствуйте Помогите с условием, нужно - выделить цветом ячейки четвертого столбца таблицы #sf, если в этих ячейках есть число '5000' ...

Закрасить символы на картинке определенным цветом
Всем привет! Понадобилось создать такую программу, которая читает документ и выявляя в нем символы например %, #,$ и тд в клетках,...

Закрасить строку определенным цветом в DataGrid
В зависимости от значения, закрасить строку определенным цветом: .... dg = new DataGrid(); ...

Как закрасить разделитель QSplitter определенным цветом?
Как закрасить разделитель QSplitter определенным цветом?Точнее ту полоску, которая разделяет виджеты

Закрасить голубым фоном окно и снеговика определенным цветом
uses graphABC; begin circle (270,330,90); circle (270,180,60); circle (270,90,30); Line (217,150,150,210); Line...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru