Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Подскажите, плз, как сделать таймер?

248
27 декабря 2012 года
Dmitry2064
590 / / 06.12.2006
Постановка задачи (для себя)...
Хочу сделать учет времени работы над тем или иным проектом. Предполагаю по нажатию кнопки (или двойному нажатию на ячейку с названием проекта) начинать отсчет времени и по второму нажатию останавливать. При этом время, полученное после остановки счетчика должно быть видно в соседней ячейке. При следующем нажатии и остановке счетчика вновь полученное время должно добавляться к значению ячейки и таким образом будет можно будет учитывать только чистое время работы (без обедов и проч. перекуров). Одновременно хорошо бы периодически (1-2 сек.) менять цвет заливки ячейки с названием проекта на другой цвет с одновременной сменой цвета шрифта (добиться эффекта блинка/аларма и т.п.)
Можно ли подсказать какие-то элементы кода? Как можно суммировать время (округляя, например, до получасов)?

Спасибо за возможные подсказки.
275
29 декабря 2012 года
pashulka
985 / / 19.09.2004
Для создания таймера в VBA используйте метод OnTime об'екта Application :

Microsoft Excel

 
Код:
Sub OnTime(EarliestTime, Procedure As String, [LatestTime], [Schedule])
Microsoft Word

 
Код:
Sub OnTime(When, Name As String, [Tolerance])
248
30 декабря 2012 года
Dmitry2064
590 / / 06.12.2006
Пока не разобрался с OnTime, поэтому другой вопрос:
Как корректно записать результат вычитания одного значения функции Now из другого Now?
Я хочу узнать, сколько между двумя значениями Now прошло дней, часов, минут. (пробую в VBA-Excel). Периодически получаются отрицательные значения минут или секунд.
275
30 декабря 2012 года
pashulka
985 / / 19.09.2004
Например, так :

Код:
Private Sub Test()
    Dim iDate1 As Date, iDate2 As Date
    Dim iMinute&, iHour&, iDay&, iResult#
   
    iDate1 = #12/25/2011 9:38:18 AM#
    iDate2 = Now
   
    iMinute = DateDiff("n", iDate1, iDate2)
    iHour = DateDiff("h", iDate1, iDate2)
    iDay = DateDiff("d", iDate1, iDate2)
         
    'iResult = iDate2 - iDate1
    'iMinute = Int(iResult * 24 * 60)
    'iHour = Int(iResult * 24)
    'iDay = Int(iResult)
End Sub
248
31 декабря 2012 года
Dmitry2064
590 / / 06.12.2006
iDate1 = #12/25/2011 9:38:18 AM#
iDate2 = Now

iResult = iDate2 - iDate1

Спасибо. Последняя строчка как раз и дает колво прошедших дней в виде десятичной дроби - то, что надо!
275
09 января 2013 года
pashulka
985 / / 19.09.2004
Цитата: Dmitry2064
Пока не разобрался с OnTime



За пять лет можно было и разобраться :)

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог