[ Регистрация · Вход · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: irakitin2014  
Форум » Excel » Вопросы по Excel » Найти на листе ячейки с примененным условным форматированием (При помощи VBA)
Найти на листе ячейки с примененным условным форматированием
ilboxxДата: Четверг, 13.02.2020, 19:28 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 7
Репутация: 0
Статус: Offline
Вводная:
Есть лист на котором в ячейках прописано условное форматирование, изменяющее цвет ячеек, в зависимости от определенных условий. Если условия не выполнены, то ячейка никак не окрашена, если выполняются - то цвет ячейки меняется.
Задача:
Найти ячейки, у которых цвет изменился
Проблемы:
1. Применение .Range("").FormatConditions.count > 0
находит ВСЕ ячейки в которых содержится условное форматирование. То есть и закрашенные и нет.
2. Окрашивание ячеек условным форматированием не меняет свойство .Interior.Pattern или .Interior.Color


Сообщение отредактировал ilboxx - Четверг, 13.02.2020, 19:29
 
irakitin2014Дата: Пятница, 14.02.2020, 11:46 | Сообщение # 2
Генерал-майор
Группа: Модераторы
Сообщений: 312
Репутация: 6
Статус: Offline
ilboxx, вы бы приложили файлик с проблемой. а то непонятно на основании чего меняются цвет ячеек, может найдется и другое решение проблемы


для спасибов ЯД 41001877306852
 
ilboxxДата: Вторник, 18.02.2020, 11:23 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 7
Репутация: 0
Статус: Offline
Цитата irakitin2014 ()
ilboxx, вы бы приложили файлик с проблемой. а то непонятно на основании чего меняются цвет ячеек, может найдется и другое решение проблемы
На основании условного форматирования. В 95% случаев в этом файле - это выход значения ячейки за диапазон min - max.

Решение я, все-же нашел, прошу прощения, что не отписал раньше. Вот оно:

Код
Range("A1").DisplayFormat.Interior.ColorIndex
показывает как раз изменение цвета при помощи условного форматирования. То есть проверка:
Код
If Range("A1").DisplayFormat.Interior.ColorIndex <> -4142
Позволяет определить, что заливка в ячейке присутствует по причине того, что активировалось какое-либо правило условного форматирования, прописанное в этой ячейке.
 
juliamatДата: Понедельник, 15.08.2022, 18:47 | Сообщение # 4
Рядовой
Группа: Проверенные
Сообщений: 1
Репутация: 0
Статус: Offline
В продолжении темы - мне надо определить, в какой цвет покрашены ячейки путём условного форматирования. При этом свойство ячейки interior.color остаётся исходным, те не изменяется. Это вообще выполнимая задача?
 
dsb75Дата: Понедельник, 15.08.2022, 19:12 | Сообщение # 5
Генералиссимус
Группа: Администраторы
Сообщений: 133
Репутация: 2
Статус: Offline
Вроде бы говорят, что в этом случае надо разбираться уже с правилами условного форматирования, что конечно так себе идея.
Может быть вам стоит снабдить своё условное форматирование (если оно ваше) неким промежуточным слоем абстракции, по которому вы просто будете знать, что вот сейчас сработало такое-то правило, а значит цвет вам будет заранее известен.
 
Форум » Excel » Вопросы по Excel » Найти на листе ячейки с примененным условным форматированием (При помощи VBA)
  • Страница 1 из 1
  • 1
Поиск: