Страницы: 1
RSS
Выделение цветом новых данных, Макрос для выделения новых данных в таблице.
 
Доброе время суток.
Есть файл который собирает данные с других файлов. Нужно что бы новые данные в ячейке были выделены цветом, а через сутки цвет бы пропадал.

Нашел макрос подходящий, но не знаю как прикрутить очистку цвета через сутки или двое.


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 - 19.09.2018 10:17:53
 
С какой периодичностью "собирает данные с других файлов"? Если раз в сутки, то просто перед сбором убрать всё выделение цветом. Если же чаще, то как решение "в лоб" - можно создать скрытый лист куда записывать дату-время изменения соответствующей ячейки на основном листе. При открытии книги, а так же перед запуском сбора данных нужно запускать макрос который будет проверять даты на скрытом листе и если они меньше на заданный интервал "сутки или двое", то очищать цвет соответствующей ячейки на основном листе.
Хотя возможны и другие варианты. Файл-пример очень бы помог более полно увидеть Вашу задачу.
Не стреляйте в тапера - он играет как может.
 
Не скажу что это хороший вариант, если данных много
на chang повесить создание УФ где четко прописано =Now()<[время изменения]+1
По вопросам из тем форума, личку не читаю.
 
БМВ,ну я же написал что решение "в лоб" :) Да и "много" - понятие весьма относительное...
А про УФ - красиво. Особенно если сделать когда с каждым часом цвет будет становиться бледнее пока совсем не пропадёт.
Не стреляйте в тапера - он играет как может.
 
Ts.Soft, Это  
Цитата
БМВ написал:
Не скажу что это хороший вариант
относилось к моему предложению :-) . Просто куча УФ на листе. Ну или нужно будет прибираться иногда, удаляя "отработанные"
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Не скажу что это хороший вариант, если данных много на chang повесить создание УФ где четко прописано =Now()<[время изменения]+1
А как можно узнать время изменения ячейки?

П.С. образец приложил.
 
Цитата
AndyH написал:
время изменения ячейки
равно тому времени когда она меняется :-)
AndyH, Все зависит от процедуры обновления данных, собственно опираясь на это и надо что-то мудрить,
Изменено: БМВ - 19.09.2018 10:59:03
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
равно тому времени когда она меняется :-)  AndyH , Всне зависит от процедуры обновления данных, собственно опираясь на это и надо что-то мудрить,
А просто прописать очистку ячеек через сутки в макрос не получиться?!
 
Цитата
AndyH написал:
через сутки
от чего? от предыдущей очистки или от именно времени внесения информации ….?
Все можно, только надо это время где-то хранить. Вам же писали
Цитата
Ts.Soft написал:
можно создать скрытый лист куда записывать дату-время изменения
По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
от чего? от предыдущей очистки или от именно времени внесения информации ….?
От предыдущего внесения информации.
 
Как меняется информация не знаю, вот вариант описанный в #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
для наглядности подсветка заряжена на 1  минуту
По вопросам из тем форума, личку не читаю.
 
Доброе время суток
Цитата
AndyH написал:
От предыдущего внесения информации.
А не подскажите, откуда оно возьмётся, учитывая предыдущее
Цитата
AndyH написал:
А как можно узнать время изменения ячейки?
Если изменение информации производится макрсом, то пусть он и пишет/обновляет адрес ячейки, куда было записано новое значение, и дату и время этого изменения на тот самый скрытый лист.
Страницы: 1
Наверх