Добрый день. Подскажите как я могу отследить изменение в ячейке. Допустим есть ячейка которая отслеживает курс доллара. Она обновляется. Нужно ее как то подсветить если курс выше стал одним цветом, если ниже то другим. Так же хотелось бы процент увидеть рядом в ячейке поднятия или опускания курса. Т.е. ячейка должна проверять саму себя и сравнивать старое число и обновленное новое в ней. Можно ли средствами excel это сделать?
В первом файле просто изменение ячейки руками. Во втором берется информация с интернета.
Добрый день. Подскажите как я могу отследить изменение в ячейке. Допустим есть ячейка которая отслеживает курс доллара. Она обновляется. Нужно ее как то подсветить если курс выше стал одним цветом, если ниже то другим. Так же хотелось бы процент увидеть рядом в ячейке поднятия или опускания курса. Т.е. ячейка должна проверять саму себя и сравнивать старое число и обновленное новое в ней. Можно ли средствами excel это сделать?
В первом файле просто изменение ячейки руками. Во втором берется информация с интернета.ИгорьЛеонидов
Ячейка сама себя проверять не может. Она довольно тупенькое существо )
То, о чем Вы пишете, можно сделать. Только файл-пример приложите, в соответствии с Правилами Форума. Тем более, надо посмотреть, как именно реализовано обновление курса доллара в таблице. От этого решение зависит.
А в целом, если по уму - надо не только обновлять курс доллара в ячейке, но и элементарно записывать каждое обновление в "журнал", тогда можно какую угодно красоту наводить
Ячейка сама себя проверять не может. Она довольно тупенькое существо )
То, о чем Вы пишете, можно сделать. Только файл-пример приложите, в соответствии с Правилами Форума. Тем более, надо посмотреть, как именно реализовано обновление курса доллара в таблице. От этого решение зависит.
А в целом, если по уму - надо не только обновлять курс доллара в ячейке, но и элементарно записывать каждое обновление в "журнал", тогда можно какую угодно красоту наводитьabtextime
abtextime, Было бы интересно записывать логи изменения цифры в ячейке. Но как заставить при каждом обновлении листа записывать в отдельный лист лог.
abtextime, Было бы интересно записывать логи изменения цифры в ячейке. Но как заставить при каждом обновлении листа записывать в отдельный лист лог.ИгорьЛеонидов
Ве зависит от того как и чем производится изменений, щас поищу пример, где Web Query обновляется автоматически и на листе подсвечиваются последние изменения.
Ве зависит от того как и чем производится изменений, щас поищу пример, где Web Query обновляется автоматически и на листе подсвечиваются последние изменения.
Private Sub Worksheet_Change(ByVal Target As Range) Dim curs_old, curs If Target.Address <> "$A$5" Then Exit Sub Application.ScreenUpdating = False curs = Target.Value Application.EnableEvents = False Application.Undo curs_old = Target.Value Target.Offset(, 3) = 1 - curs_old / curs Target.Value = curs Target.Offset(, 1) = curs_old If curs >= curs_old Then Target.Interior.Color = vbGreen Else Target.Interior.Color = vbRed Application.EnableEvents = True Application.ScreenUpdating = True End Sub
[/vba] а для обновления по формуле примерно так [vba]
Код
Private Sub Worksheet_Calculate() Dim curs_old, curs Application.ScreenUpdating = False curs = [A5].Value Application.EnableEvents = False Application.Undo curs_old = [A5].Value [A5].Offset(, 3) = 1 - curs_old / curs [A5].Formula = "=Лист2!B4" [A5].Offset(, 1) = curs_old If curs >= curs_old Then [A5].Interior.Color = vbGreen Else [A5].Interior.Color = vbRed Application.EnableEvents = True Application.ScreenUpdating = True End Sub
[/vba]
Может, так подойдёт для ручного изменения? [vba]
Код
Private Sub Worksheet_Change(ByVal Target As Range) Dim curs_old, curs If Target.Address <> "$A$5" Then Exit Sub Application.ScreenUpdating = False curs = Target.Value Application.EnableEvents = False Application.Undo curs_old = Target.Value Target.Offset(, 3) = 1 - curs_old / curs Target.Value = curs Target.Offset(, 1) = curs_old If curs >= curs_old Then Target.Interior.Color = vbGreen Else Target.Interior.Color = vbRed Application.EnableEvents = True Application.ScreenUpdating = True End Sub
[/vba] а для обновления по формуле примерно так [vba]
Код
Private Sub Worksheet_Calculate() Dim curs_old, curs Application.ScreenUpdating = False curs = [A5].Value Application.EnableEvents = False Application.Undo curs_old = [A5].Value [A5].Offset(, 3) = 1 - curs_old / curs [A5].Formula = "=Лист2!B4" [A5].Offset(, 1) = curs_old If curs >= curs_old Then [A5].Interior.Color = vbGreen Else [A5].Interior.Color = vbRed Application.EnableEvents = True Application.ScreenUpdating = True End Sub