Страницы: 1
RSS
Как отследить изменения цвета в ячейках?
 
Здравствуйте.
    В файле у меня есть таблица (не думаю, что для вопроса нуждается в приложении). В таблице в одном столбце формула, которая, опираясь на сегодня, вычисляет дату. В зависимости от этой даты УФ закрашивает строки таблицы. Мне нужно в коде отследить, какие строки поменяли цвет (код буду запускать по кнопке). Я не понимаю, как мне взять исходные данные до отработки УФ? Помогите, пожалуйста.
Изменено: Шарик - 04.06.2021 11:43:52
 
Шарик,
лучше заложить условие УФ, чем цвет по УФ
 
Цитата
Шарик написал:
В зависимости от этой даты УФ закрашивает строки таблицы
лучше это и отслеживайте. Проще вычислить текущую дату в ячейке, чем событие изменения цвета.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков, Не пойдёт. В каждой строке - своя дата. А вариантов цветов - всего 5. Пока вижу вариант: отказаться от УФ и закрашивать в коде. Но хотелось бы всё же остаться на УФ. Помогите, пожалуйста.
Изменено: Шарик - 04.06.2021 11:44:55
 
Цитата
Шарик написал:
Не пойдёт. В каждой строке - своя дата.
То, что в каждой строке своя дата вообще не проблема - просто проверяется каждая строка на выполнение условия, это обычная практика. Откуда взялось 5 цветов на одну дату не знаю, пример никто пока кроме Вас не видел.
Цитата
Шарик написал:
хотелось бы всё же остаться на УФ. Помогите, пожалуйста
отследить событие изменения цвета это код не на один модуль и ни разу не стабильный. А раз другие пути, которые Вам предлагают, Вам не подходят - я лучше отстранюсь.
Изменено: Дмитрий(The_Prist) Щербаков - 04.06.2021 11:53:29
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Вопрос даже не в том, что отслеживать, а в том как. Ведь код будет запускаться уже ПОСЛЕ изменения дат и отработки УФ. И я не пойму как мне в коде узнать значения до изменения дат и отработки УФ?
Изменено: Шарик - 04.06.2021 11:54:37
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
другие пути, которые Вам предлагают, Вам не подходят
Подходят. Но вопрос не в этом, а в том как в коде узнать значения дат до их изменения, если в самой таблице они уже изменились?
 
Цитата
Шарик написал:
И я не пойму как мне в коде узнать значения до изменения дат
чтобы это понять, надо знать как и кем меняются даты. А Вы об этом не говорите. Есть события изменения ячеек(если изменения делались вручную или кодом, а не формулой), которые таки позволяют отследить изменения ячеек. Например, Worksheet_Change.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал:
надо знать как и кем меняются даты
Цитата
Шарик написал:
В таблице в одном столбце формула, которая, опираясь на сегодня, вычисляет дату
:)
 
Цитата
Шарик написал:
в одном столбце формула, которая, опираясь на сегодня, вычисляет дату
если это может вычислить формула - значит может вычислить и код. И более того: сегодня может измениться только один раз за день. Значит вычислять дату в этом столбце, опираясь на сегодня, можно просто при запуске файла один раз кодом. Но пока это догадки и до сих пор кроме Вас никто не знает где что и как у Вас там записано и вычисляется. Правила не читали, видимо, и про файл-пример не в курсе :)
Вы бы вдумались в свою задачу и изложили бы её нормально, вместо объяснений того, как Вам кажется её можно решить.
Изменено: Дмитрий(The_Prist) Щербаков - 04.06.2021 12:11:01
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,
А если формула вычисляет, то могу я отследить предыдущее значение в коде? Или никак?
 
Цитата
Шарик написал:
могу я отследить предыдущее значение в коде?
а я откуда знаю? У Вас там что-то вычисляется, что-то красится, где-то как-то выводится. Я не могу угадать где, как и что там у Вас происходит и как это отследить
Цитата
Шарик написал:
в одном столбце формула, которая, опираясь на сегодня, вычисляет дату
т.е. по сути изменяемая величина одна - текущая дата. вычислить предыдущее значение не проблема, подставив в вычисления вчерашнюю. Что мешает это сделать - я не знаю, возможно есть причины.
В общем интерес к теме пропал - сидеть и гадать что там у Вас и как без файла и понятного пояснения, накидывая какие-то варианты, нет желания.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Ещё раз вопрос: можно ли узнать значения ячеек, которые были в них час назад? Не важно какие, не важно как они менялись. Если я через час запущу код, могу ли я как-то узнать через него НЕ текущие значения ячеек? Или всё, я смогу узнать только текущие значения?
 
Цитата
Шарик написал:
ожно ли узнать значения ячеек, которые были в них час назад
да, например копируйте данные каждый час на отдельный (скрытый ) лист и с ним сравнивайте
Изменено: Mershik - 04.06.2021 12:22:55
Не бойтесь совершенства. Вам его не достичь.
 
Mershik,
А если нигде ничего не копировал? Неужели Эксель сам нигде не запоминает предыдущее значение?
 
Шарик,
вопрос не по теме, но как вариант можно использовать макрос, чтобы запомнить предыдущее значение
Цитата
Шарик написал:
Неужели Эксель сам нигде не запоминает предыдущее значение
Код
Dim zapas
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
zapas = Target.Value
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
    Application.EnableEvents = False
        было = zapas
    Application.EnableEvents = True

If Not Intersect(Target, Range("T:T")) Is Nothing Then
    стало = Target.Value

    MsgBox "было: " & было
    MsgBox "стало: " & стало
End If
End Sub
Страницы: 1
Наверх