Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2009, 13:08   #1
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию секундомер

Как сдедать секундомер, который бы включался по нажатию кнопки?

Предполагаю, что код должен выглядеть как-то так, только не знаю, как записывать время.

Option Explicit
Dim NextTick

Sub timer()
ThisWorkbook.Sheets("Sheet1").Range ("timer").Value = CDbl(Time)
tick = TimeValue("00:00:01")

NextTick = ???+ TimeValue("00:00:01")
Application.OnTime NextTick, "timer"

End Sub

*переменная timer ссылается на ячейку A1, где должен быть секундомер.
ruavia3 вне форума Ответить с цитированием
Старый 17.11.2009, 13:39   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
Dim bt As Date - обьявлена, как общая переменная

Sub StartTmr()
  bt = Now
  Application.OnTime Now + TimeSerial(0, 0, 1), "tmr"
End Sub

Sub tmr()
  Cells(1, 1) = Now - bt
  ' придумайте проверку на что-то, чтобы его выключить if ... then exit sub
  Application.OnTime Now + TimeSerial(0, 0, 1), "tmr"
End Sub
Ячейке А1 назначте формат времени, любым способом запускаете StartTmr - в ячейке А1 (активного листа) побежал таймер.
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 17.11.2009, 14:12   #3
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Здорово, а можно его сделать прерываемым, но чтобы время не обнулялось?

Последний раз редактировалось ruavia3; 17.11.2009 в 14:30.
ruavia3 вне форума Ответить с цитированием
Старый 17.11.2009, 15:26   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Цитата:
можно его сделать прерываемым
Можно. Вот пример:

Код:
Dim bt As Date, StopTimer As Boolean

Sub TStart()
    bt = IIf(Year(bt) < 2000, Now, Now - Cells(1, 1))
    StopTimer = False
    Application.OnTime Now + TimeSerial(0, 0, 1), "tmr"
End Sub

Sub tmr()
    Cells(1, 1) = Now - bt
    If Not StopTimer Then Application.OnTime Now + TimeSerial(0, 0, 1), "tmr"
End Sub

Sub TStop()
    StopTimer = True
End Sub


А разве нельзя было взять готовое решение здесь?
EducatedFool вне форума Ответить с цитированием
Старый 17.11.2009, 15:32   #5
ruavia3
Форумчанин
 
Регистрация: 13.03.2009
Сообщений: 253
По умолчанию

Спасибо) у Вас неизменный юмор.
ruavia3 вне форума Ответить с цитированием
Старый 21.09.2010, 14:39   #6
Павел1410
Новичок
Джуниор
 
Регистрация: 21.09.2010
Сообщений: 2
По умолчанию

Здравствуйте, мне нужно сделать секундомер в ячейке, но чтобы по нажатию на кнопку, он фиксировал значение и запускался в другой ячейке, я не большой знаток скриптов поэтому прикладываю вложение. Смысл: Автогонка, идёт просчёт времени, при нажатии "старт всех" стартуют сразу 4 секундомера, если просто "старт" - соответственно один, при нажатии круг секундомер фиксирует время и стартует в соседней ячейке, кстати он может отображать десятые и сотые доли секунд ? И ещё посмотрите пожалуйста мой код, непойму почему задействованы ячейки до самой М5? Не судите за примитивность, буду благодарен за помощь.
Вложения
Тип файла: zip Примерный хронометраж.zip (12.6 Кб, 64 просмотров)
Павел1410 вне форума Ответить с цитированием
Старый 21.09.2010, 15:29   #7
doober
Старожил
 
Аватар для doober
 
Регистрация: 02.05.2009
Сообщений: 3,907
По умолчанию

немного подправил,надеюсь что понял правильно.В ячейке после запятойотображаются тыс.доли секунды,были сотые
Вложения
Тип файла: rar Примерный хронометраж.rar (11.8 Кб, 124 просмотров)
Анализ,обработка данных Недорого
doober вне форума Ответить с цитированием
Старый 21.09.2010, 16:23   #8
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

А вот мой вариант:



Сначала жмём желтую кнопочку для запуска секундомера, а потом по необходимости - зелёные или красные.
EducatedFool вне форума Ответить с цитированием
Старый 22.09.2010, 08:00   #9
Павел1410
Новичок
Джуниор
 
Регистрация: 21.09.2010
Сообщений: 2
Хорошо

Игорь, спасибо тебе земляк (в прямом смысле!). Прямо в точку попал и всего 3 скрипта. Я б наверное ещё долго "велосипед изобретал" От Златоуста САЛЮТ Первоуральску! (я там родился кстате... ) Спасибо и удачи.
Павел1410 вне форума Ответить с цитированием
Старый 19.02.2013, 01:01   #10
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

уважаемый IgorGO помогите пожалуйста нужно несколько секундомеров на одном листе с возможностью кнопки старта, остановки и ресета для каждого в отдельности т.е. для учета игрового времени для каждого игрока в отдельности(18 секундомеров)
Вложения
Тип файла: rar секундомеры.rar (21.2 Кб, 83 просмотров)
VITA11111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите скрипт на секундомер? molodoyy PHP 1 23.03.2009 22:24
Секундомер aesoem Общие вопросы Delphi 10 28.01.2008 19:25
секундомер itisiam Общие вопросы Delphi 6 31.05.2007 16:55