Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 08:25:59

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Условное форматирование при изменении ячейки кодом VBA
Страниц: [1]   Вниз
Печать
Автор Тема: Условное форматирование при изменении ячейки кодом VBA  (Прочитано 2138 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Mizar
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 21


Просмотр профиля E-mail
« : 05.01.2021, 19:33:01 »

Добрый день.
На листе применяется условное форматирование к диапазону строк. (закрашиваем если условие верно)
Условие проверяет ячейку в строке, если дата в ячейке меньше текущей, то условие верно.

Дату в ячейку помещает макрос Cells(CopyPosx, 14) = Form.TextBoxDATA2  где CopyPosx - строка,  Form.TextBoxDATA2 -  текстовое поле с датой в формате dd.mm.yyyy

Проблема в том, что если дату в ячейку помещает макрос, то условное форматирование не работает.
Cells(CopyPosx, 14) = Format(Form.TextBoxDATA2, "dd.mm.yyyy") тоже не работает
Cells(CopyPosx, 14).FormulaR1C1 = Format(Form.TextBoxDATA2, "dd/mm/yyyy")  и это тоже не работает

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

Подскажите пожалуйста, что тут не так?

Если интересно, форматирование устанавливаю так
Код: (vb)
    
Sheets("Лист1").Cells.FormatConditions.Delete
    With Sheets("Лист1").Range("B4:R" & iLastRow & "")
        .FormatConditions.Add Type:=xlExpression, Formula1:="=И($N4 <> """"; $N4< СЕГОДНЯ())"
        With .FormatConditions(1).Interior
            .PatternColorIndex = xlAutomatic
            .Color = 255
            .TintAndShade = 0
        End With
        .FormatConditions(1).StopIfTrue = True
    End With
« Последнее редактирование: 05.01.2021, 19:52:31 от Mizar » Записан
Mizar
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 21


Просмотр профиля E-mail
« Ответ #1 : 06.01.2021, 17:18:58 »

Нашел решение на другом форуме.
Cells(CopyPosx, 14).Value = CDate(Form.TextBoxDATA2)
« Последнее редактирование: 06.01.2021, 21:17:30 от vikttur » Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru