powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Цвет текста при изменении значения в ячейке в большую или меньшую сторону
15 сообщений из 15, страница 1 из 1
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34281831
fsv21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть данные, которые вставляются в Ексель в режиме реального времени. Данные меняются очень часто. Необходимо сделать так, чтобы при изменении значения в ячейке в большую сторону (НОВОЕЗНАЧ – СТАРОЕЗНАЧ>0) цвет шрифта – зеленый, в меньшую сторону (НОВОЕЗНАЧ - СТАРОЕЗНАЧ<0) цвет шрифта – красный.

Поясню, что это все происходит в ОДНОЙ ЯЧЕЙКЕ. Т.е. в эту ячейку вставляется новое значение, заменяя старое значение.

Условным форматирование это сделать не удается. Получается, что СТАРОЕЗНАЧ=НОВОЕЗНАЧ (СТАРОЕЗНАЧ-НОВОЕЗНАЧ=0).

В VBA не разбираюсь. Надеюсь на помощь!
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34283287
fsv21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Может быть есть какая-нибудь функция времени в Экселе? Или таймер (время жизни значения)?

Чтобы старое значение где-нибудь сохранялось на определенное време (порядка 1 секунды), а потом заменялось на новое и т.п.
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34283311
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsv21Есть данные, которые вставляются в Ексель в режиме реального времени.
Что вы курите? Поделись травой.
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34283375
fsv21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White Owl fsv21Есть данные, которые вставляются в Ексель в режиме реального времени.
Что вы курите? Поделись травой.
Написано правильно!
Данные в Эксель действительно можно втавлять в режиме реального времени.
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34283404
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsv21

У раб. листа есть событие Worksheet_Change, которое происходит при изменении данных в ячейке.
Если надо отслеживать состояние одной ячейки, то можно при каждом изменении данных в ней в обработчике события Worksheet_Change в глобальную переменную, либо в статическую переменную уровня процедуры писать данные из ячейки, и при следующем изменении проигрывать какой-то сценарий проверки данных. Если нужно отслеживать изменения во многих ячейках, то придется запись состояния вести в массив, но если мониторинг будет вестись по всему листу – то массив окажется большим и полупустым. В этом случае, мне кажется, можно воспользоваться объектом Dictionary, и в качестве ключа (key) использовать, например, адрес ячейки.
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34283499
fsv21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lena_#### fsv21

У раб. листа есть событие Worksheet_Change, которое происходит при изменении данных в ячейке.
Если надо отслеживать состояние одной ячейки, то можно при каждом изменении данных в ней в обработчике события Worksheet_Change в глобальную переменную, либо в статическую переменную уровня процедуры писать данные из ячейки, и при следующем изменении проигрывать какой-то сценарий проверки данных. Если нужно отслеживать изменения во многих ячейках, то придется запись состояния вести в массив, но если мониторинг будет вестись по всему листу – то массив окажется большим и полупустым. В этом случае, мне кажется, можно воспользоваться объектом Dictionary, и в качестве ключа (key) использовать, например, адрес ячейки.
Приведите, пожалуйста, пример для одной ячейки?!
Заранее спасибо!
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34283508
lena_####
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А Вы расскажите по подробней, как и откуда вставляются данные.
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34283781
tolikt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lena_####А Вы расскажите по подробней, как и откуда вставляются данные.
Т. к. всё надо вытягивать клещами и от fsv21 невозможно добиться чёткого пояснения, каким методом происходит " в режиме реального времени. Данные меняются очень часто ", то предполагается два варианта.
1. Данные заносятся вручную.
Тогда можно на Worksheet_Change навесить код с Undo.
2. Данные заносятся сторонним макросом.
Тогда надо копаться в коде того макроса и перед изменением данных в ячейке добавить проверку на разницу старого и нового значения.

А т. к. после выполнения макроса, который меняет данные на листе, метод Undo не работает, то вариант, как получить предыдущее значение, если новое уже было добавлено макросом, напрямую не пройдёт. Сам хотел бы узнать, как это можно проделать.

Для варианта 1.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim NewVal, NewAdr
On Error GoTo LEnd
Application.ScreenUpdating = False
Application.EnableEvents = False
NewVal = Target.Value
NewAdr = ActiveCell.Address
Application.Undo
    If Target.Value < NewVal Then
    Target.Font.ColorIndex =  5 
    ElseIf Target.Value > NewVal Then
    Target.Font.ColorIndex =  6 
    End If
LEnd:
Target.Value = NewVal
Range(NewAdr).Activate
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34284793
fsv21
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lena_####А Вы расскажите по подробней, как и откуда вставляются данные.
Данные вставляются из специальной программы, в которой просто-напросто для вывода данных в Эксель необходимо написать название файла.xls, имя листа и номер строки куда выводить. Никакого стороннего макроса нет.

В Эксели видим следующее.
Есть ячейка А1 в ней значение, пусть будет 100, через какое-то время, вставляется новое значение 103, затем 98, потом 106 и т.д. В ячейки находится только цифра, никаких формул нет.
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34286475
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsv21 lena_####А Вы расскажите по подробней, как и откуда вставляются данные.
Данные вставляются из специальной программы, в которой просто-напросто для вывода данных в Эксель необходимо написать название файла.xls, имя листа и номер строки куда выводить. Никакого стороннего макроса нет.

В Эксели видим следующее.
Есть ячейка А1 в ней значение, пусть будет 100, через какое-то время, вставляется новое значение 103, затем 98, потом 106 и т.д. В ячейки находится только цифра, никаких формул нет.А какой в этом смысл? Вы Эксель используете для отображения циферок?
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34286891
tolikt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlВы Эксель используете для отображения циферок?
Ага, пусть Билл в гробу перевернётся :-)
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34291900
В.Тыкалов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не решение, а так, фантазии на тему. можно попробовать спрятать листы, куда "специальная программа" льет данные, а для отображения создать новые, связать их со скрытыми, где обновляются данные и насильно пересчитывать каждые X секунд. а еще лучше на основании этих данных генерить какойнить вебрепорт...
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #34292528
Фотография talgat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fsv21 lena_####А Вы расскажите по подробней, как и откуда вставляются данные.
Данные вставляются из специальной программы, в которой просто-напросто для вывода данных в Эксель необходимо написать название файла.xls, имя листа и номер строки куда выводить. Никакого стороннего макроса нет.

В Эксели видим следующее.
Есть ячейка А1 в ней значение, пусть будет 100, через какое-то время, вставляется новое значение 103, затем 98, потом 106 и т.д. В ячейки находится только цифра, никаких формул нет.
Приходилось с этим сталкиваться. При изменении значения сторонней прогой Worksheet_Change не срабатывало. Использовал On Time. Через каждые 3 сек.(можно задать любое) проверял значение на изменение. Если изменилось -
1. срабатывал код
2. текущее значение запоминалось
3. через каждые 3 сек. сравнивалось

и т.д.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #36060841
RomanNN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникла такая необходимость, есть ячейки"А" при заполнении любой из ячейки в столбце"А" форматом хх:хх , в столбце"С" через 1 час цвет меняется на красный.
Пример: Есть какой-то заказ у него есть время его получения он вписывается в столбец"А" (хх:хх),
в столбце"В" указано время получение заказа заказчиком, в столбце"С" статус заказа, когда заполняется время в столбце"А", то в столбце"С" запускается таймер и через час цвет ячейки"С" поменяется на красный, а после ввода времени получения заказа заказчиком в столбце"В" статус становится зеленым.Просьба по подробнее объяснить как это сделать.Заранее спасибо.
...
Рейтинг: 0 / 0
Цвет текста при изменении значения в ячейке в большую или меньшую сторону
    #36060889
Сергей06
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
talgatfsv21lena_####А Вы расскажите по подробней, как и откуда вставляются данные.
Данные вставляются из специальной программы, в которой просто-напросто для вывода данных в Эксель необходимо написать название файла.xls, имя листа и номер строки куда выводить. Никакого стороннего макроса нет.

В Эксели видим следующее.
Есть ячейка А1 в ней значение, пусть будет 100, через какое-то время, вставляется новое значение 103, затем 98, потом 106 и т.д. В ячейки находится только цифра, никаких формул нет.
Приходилось с этим сталкиваться. При изменении значения сторонней прогой Worksheet_Change не срабатывало. Использовал On Time. Через каждые 3 сек.(можно задать любое) проверял значение на изменение. Если изменилось -
1. срабатывал код
2. текущее значение запоминалось
3. через каждые 3 сек. сравнивалось

и т.д.fsv21, вот такое подойдет?
talgat, а как задать время меньше одной секунды?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Sub Макрос3Подсветка()
  Dim DateEnd As Date
  Dim Val_1 As Integer
  Dim Val_2 As Integer
  
  DateEnd = "26.06.2009 9:00:10" 'Дата и время окончания рекурсивной процедуры
  If Now > DateEnd Then Exit Sub ' Проверка и выход из рекурсии
  
  TimVal = ("00:00:02") ' Время через которое происходит рекурсия
  Application.OnTime Now + TimeValue(TimVal), "Макрос3Подсветка" 'рекурсивно запускаем этот же макрос через определенное время
  'здесь наша процедура
   Val_1 = Range("A2").Value 'запомнили предыдущее занчение
   Range("A2").FormulaR1C1 = "=RAND()" 'ввели формулу для возврата случайного числа
   Val_2 = Range("A2").Value 'запомнили настоящее занчение
   
   If Val_1 > Val_2 Then ' Если предыдущее значение больше то,
         With Range("A2").Interior 'делаем ячейку красной
              .ColorIndex =  3 
              .Pattern = xlSolid
         End With
   
   Else ' в противном случае
                        
          With Range("A2").Interior 'делаем ячейку зеленой
               .ColorIndex =  4 
               .Pattern = xlSolid
          End With
   End If

End Sub
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Цвет текста при изменении значения в ячейке в большую или меньшую сторону
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]