Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Условное форматирование кодом VBA - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Условное форматирование кодом VBA (Программированию только учусь...)
Условное форматирование кодом VBA
SergejSor Дата: Воскресенье, 09.09.2012, 13:40 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 0 ±
Замечаний: 0% ±

Доброго всем дня. Возникла проблема с написанием кода, если сравнить два числа, например больше или меньше, тут все понятно, а как сравнить время? То есть например "00:40:00" минут с другим временем больше оно или меньше. Если больше то ячейка должна окраситься в красный цвет. Пробовал условным форматированием, тормозит жутко, так как перебирает все ячейки, вот я и пробую написать макрос который проверяет только последнее введенное значение. Прикладываю примерный код и файлик. Заранее спасибо. С кодами мог написать не верно, только учусь....
[vba]
Code

Sub xls()

  Dim xl As Long
  Dim t As Long
   
   t = TimeValue("00:40:00")
     With Worksheets("Лист1")
                xl = Cells(Rows.Count, "A").End(xlUp).Row ' Поиск последней незаполненной ячейки
              If Range("A" & xl).Value = "Вариант 3" And _
                 Range("B" & xl).Value > t Then _
                 Range("B" & xl).Interior.Color = RGB(255, 0, 0)
               Exit Sub
               
       End With
      
End Sub
[/vba]
К сообщению приложен файл: Proba.xlsm (14.6 Kb)
 
Ответить
СообщениеДоброго всем дня. Возникла проблема с написанием кода, если сравнить два числа, например больше или меньше, тут все понятно, а как сравнить время? То есть например "00:40:00" минут с другим временем больше оно или меньше. Если больше то ячейка должна окраситься в красный цвет. Пробовал условным форматированием, тормозит жутко, так как перебирает все ячейки, вот я и пробую написать макрос который проверяет только последнее введенное значение. Прикладываю примерный код и файлик. Заранее спасибо. С кодами мог написать не верно, только учусь....
[vba]
Code

Sub xls()

  Dim xl As Long
  Dim t As Long
   
   t = TimeValue("00:40:00")
     With Worksheets("Лист1")
                xl = Cells(Rows.Count, "A").End(xlUp).Row ' Поиск последней незаполненной ячейки
              If Range("A" & xl).Value = "Вариант 3" And _
                 Range("B" & xl).Value > t Then _
                 Range("B" & xl).Interior.Color = RGB(255, 0, 0)
               Exit Sub
               
       End With
      
End Sub
[/vba]

Автор - SergejSor
Дата добавления - 09.09.2012 в 13:40
Саня Дата: Воскресенье, 09.09.2012, 14:08 | Сообщение № 2
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
Dim t As Long --> Dim t As date
 
Ответить
СообщениеDim t As Long --> Dim t As date

Автор - Саня
Дата добавления - 09.09.2012 в 14:08
SergejSor Дата: Воскресенье, 09.09.2012, 14:10 | Сообщение № 3
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 0 ±
Замечаний: 0% ±

Пробовал... чет не правильно считает...
 
Ответить
СообщениеПробовал... чет не правильно считает...

Автор - SergejSor
Дата добавления - 09.09.2012 в 14:10
SergejSor Дата: Воскресенье, 09.09.2012, 14:14 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 0 ±
Замечаний: 0% ±

Выражение является верным, не важно сколько времени стоит в проверяемой ячейке "00:41:00" или "00:35:00"
 
Ответить
СообщениеВыражение является верным, не важно сколько времени стоит в проверяемой ячейке "00:41:00" или "00:35:00"

Автор - SergejSor
Дата добавления - 09.09.2012 в 14:14
Саня Дата: Воскресенье, 09.09.2012, 14:18 | Сообщение № 5
Группа: Друзья
Ранг: Ветеран
Сообщений: 1068
Репутация: 560 ±
Замечаний: 0% ±

XL 2016
расскажи, что ты делаешь и что не правильно.

да, внутри конструкции With перед словами Range и Cells поставь точки, тогда все будет относиться к соотв. листу.
в файле у тебя With Worksheets("Лист2"), хотя без точек это все равно пустое место
 
Ответить
Сообщениерасскажи, что ты делаешь и что не правильно.

да, внутри конструкции With перед словами Range и Cells поставь точки, тогда все будет относиться к соотв. листу.
в файле у тебя With Worksheets("Лист2"), хотя без точек это все равно пустое место

Автор - Саня
Дата добавления - 09.09.2012 в 14:18
SergejSor Дата: Воскресенье, 09.09.2012, 14:26 | Сообщение № 6
Группа: Пользователи
Ранг: Новичок
Сообщений: 49
Репутация: 0 ±
Замечаний: 0% ±

Разобрался, все заработало. С точками я и правда забыл.... Всем спасибо
 
Ответить
СообщениеРазобрался, все заработало. С точками я и правда забыл.... Всем спасибо

Автор - SergejSor
Дата добавления - 09.09.2012 в 14:26
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Условное форматирование кодом VBA (Программированию только учусь...)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!