Доброе время суток. Есть файл который собирает данные с других файлов. Нужно что бы новые данные в ячейке были выделены цветом, а через сутки цвет бы пропадал.
Нашел макрос подходящий, но не знаю как прикрутить очистку цвета через сутки или двое.
Option Explicit Dim vValue Private Sub Worksheet_Change(ByVal Target As Range) If Target.Count > 1 Then Exit Sub If Target <> vValue Then Target.Interior.Color = vbRed End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Count = 1 Then vValue = Target End Sub
Данные в столбец D и E будут импортированы с других таблиц. Строк будет очень много, поэтому нужно видеть какие изменения появились.
С какой периодичностью "собирает данные с других файлов"? Если раз в сутки, то просто перед сбором убрать всё выделение цветом. Если же чаще, то как решение "в лоб" - можно создать скрытый лист куда записывать дату-время изменения соответствующей ячейки на основном листе. При открытии книги, а так же перед запуском сбора данных нужно запускать макрос который будет проверять даты на скрытом листе и если они меньше на заданный интервал "сутки или двое", то очищать цвет соответствующей ячейки на основном листе. Хотя возможны и другие варианты. Файл-пример очень бы помог более полно увидеть Вашу задачу.
БМВ,ну я же написал что решение "в лоб" Да и "много" - понятие весьма относительное... А про УФ - красиво. Особенно если сделать когда с каждым часом цвет будет становиться бледнее пока совсем не пропадёт.
БМВ написал: равно тому времени когда она меняется :-) AndyH , Всне зависит от процедуры обновления данных, собственно опираясь на это и надо что-то мудрить,
А просто прописать очистку ячеек через сутки в макрос не получиться?!
Как меняется информация не знаю, вот вариант описанный в #3
Код
Private Sub Worksheet_Change(ByVal Target As Range)
With Target
.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=NOW()<""" & Now() & """+ ""00:01"""
'.FormatConditions(Target.FormatConditions.Count).SetFirstPriority
With .FormatConditions(1).Interior
'.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent1
'.TintAndShade = 0.399945066682943
End With
End With
'Selection.FormatConditions(1).StopIfTrue = False
End Sub
AndyH написал: От предыдущего внесения информации.
А не подскажите, откуда оно возьмётся, учитывая предыдущее
Цитата
AndyH написал: А как можно узнать время изменения ячейки?
Если изменение информации производится макрсом, то пусть он и пишет/обновляет адрес ячейки, куда было записано новое значение, и дату и время этого изменения на тот самый скрытый лист.