Страницы: 1
RSS
Приоритеты условного форматирования, Нужно очистить ячейку при исполнении будущего условия
 
Добрый вечер! Помогите, пожалуйста, настроить форматирование. В таблице в столбце результат мы из списка выбираем один из вариантов, в столбце перезвон, в зависимости от обстоятельств и значения из результат ставим дату перезвона. В столбце статус ставим итоговый статус (один из трех вариантов). Задача такая: если у нас статус выбран, то  дата в столбце перезвон должна пропасть. При этом у нас стоит условное форматирование на дату если она просрочена (меньше сегодняшней) и если она равна сегодняшней( подсветка зеленым).
Изменено: marik-tss - 21.11.2022 18:00:59
 
Добрый. "пропасть" в каком смысле? Физически исчезнуть значение должно, или "пропасть" с экрана?
Если первое - то, кмк, условное форматирование так не умеет.
Если второе - то можно настроить менять цвет шрифта на цвет фона при заполнении поля "статус".
Кому решение нужно - тот пример и рисует.
 
Если второе - то можно настроить менять цвет шрифта на цвет фона при заполнении поля "статус" - так не получается настроить
 
Пытливый, а каким образом тут правильнее настроить? если не использовать условное форматирование, чтобы прям очищалась ячейка после ввода статуса это каким способом можно добиться?
 
Если надо очищать значение ячейки - это умеет делать макрос. Макрос можно настроить на срабатывание на заполнение ячейки со статусом. Типа была пустая в столбце со статусом, стала не пустая ячейка. Макрос на это событие возбудился, проверил значение статуса действительно изменилось, перешел в этой строке в столбец с датой и удалил там все из нужной ячейки нах.. совсем. :)

Кстати, у вас статус формулой заполняется, или руками из выпадающего списка?
Кому решение нужно - тот пример и рисует.
 
Руками из выпадающего списка
 
Попробуйте на копии листа 1 позабивать даты, потом поменять статусы. Это нужно?
Кому решение нужно - тот пример и рисует.
 
Пытливый, супер!!! все работает!! А как вы это сделали? как мне  перенести это в рабочую таблицу?
 
Это сделано макросом, который находится в модуле копии листа 1.
Нажать Alt+F11, слева вверху щелкнуть по копии лист1, справа вверху в большом окне будут скупые строки кода. Вот такие:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("C2:C" & UsedRange.Rows.Count)) Is Nothing And Target.Cells.Count = 1 And Target <> "" Then
        Target.Offset(0, -1).ClearContents
    End If
End Sub
Вкратце, там написано: при событии изменения листа (Worksheet_Change). Если целевой диапазон, в котором были изменения (Target) в столбце С и в Target только одна ячейка, и Target не пустое, то сместиться на 1 столбец влево по той же строке (Offset(Строка, Столбец) и очистить содержимое (ClearContents). В рабочую таблицу можно перетащить методом копирования - скопировали код, открыли рабочий файл, вставили код в модуль нужного листа. Если надо - изменили столбец С на нужный. И т.д.
З.Ы. И, да, после внедрения макроса файл надо будет сохранить с поддержкой макросов, или в xlsb.
Еще З.Ы. тренироваться лучше на копии рабочего файла, если для вас макрос сильно в диковинку.
Изменено: Пытливый - 23.11.2022 10:20:42
Кому решение нужно - тот пример и рисует.
 
Пытливый, спасибо вам огромное!!!!Все сделала, все работает)))))
Страницы: 1
Наверх