Top-office11.ru

IT и мир ПК
33 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Таймер в excel

Таймер (секундомер) в Excel — система электронного хронометража

Программа предназначена для фиксации времени событий (хронометража) в таблице Excel в режиме онлайн.

Типичное применение такой программы — фиксации времени прохождения кругов автогонщиками, но подойдёт данный секундомер и для учёта времени на любых других спортивных состязаниях.

  • изменяемое количество участников — от 1 до 20
  • изменяемое количество кругов (заездов, состязаний) — от 1 до 6
  • возможность начислять отдельным участникам штрафные баллы (секунды)
  • автоматический подсчёт суммарного времени
  • распределение мест среди участников
  • возможность сортировки таблицы результатов состязания по любому параметру
  • фиксация времени с точностью до сотых долей секунды

Смотрите также программу для игрового клуба / интернет кафе
для учёта времени и платежей нескольких игроков на приставках

Смотрите также упрощённую (предыдущую) версию программы-секундомера,
без возможности выбора количества участников и числа состязаний

В последней версии программы, желтая кнопочка сверху, в принципе, не нужна — теперь всё и без неё работает.
Разве что перед изменением количества участников потребуется принудительно остановить главный таймер.

Обратите внимание, что следующие действия:

  • добавление или удаление участников
  • изменение количества кругов
  • простановка штрафных баллов (секунд)

возможны только при остановленном главном таймере.

Не пытайтесь во время соревнования, при включенных секундомерах, прописать кому-то штрафные секунды,
— это приведёт к полной остановке макроса, и, соответственно, к некорректным результатам.

ВложениеРазмерЗагрузкиПоследняя загрузка
TimerEx.xls73 КБ2461 год 47 недель назад
  • 41161 просмотр

Комментарии

1. Про андроид очень жаль. Вообще нет вариантов?
2. мин.1500 — понятно, а макс.? А лучше конкретно сколько такая доработка будет стоить?

1. На андроиде макросы не работают, так что работать не будет
2. Могу сделать под заказ. От 1500 руб

Здравствуйте, Игорь!
1. Будет ли работать на андроиде?
2. Что нужно, чтобы увеличить максимально возможное число участников до 50-100 и число кругов до 30-50?

Любые доработки бесплатных макросов, — только на платной основе.
Если сами не можете поменять что-то в файле, — высылайте заказ через сайт, сделаем под заказ.

тот же самый вопрос. нужно поменять «фамилия» на «новая задача».

Добрый день, очень крутой макрос!
Использовал для ведения статистики в любительских картинговых соревнованиях. Единственный не очень удобный момент, что пришлось открывать 2 параллельных экселя, что бы замерить 8 последовательных отрезков, а потом прыгать между 2-мя файлами.
Насколько сложно увеличить кол-во возможных кругов (заездов, состязаний) скажем до 20, ну или хотя бы до 12?
Буду признателен за ответ, лучше в личку.
Спасибо!

секундомер и таймер — это две большие разницы. Когда программист, который пишет макросы, не понимает точно над чем он работает, тогда и получается «каша»

Привет, написал на почту.
Нужна доработка вашего файла.
Ответьте.

А случайно кто может помочь в этом деле не знаете?

Под iPAD — надо писать отдельное приложение (это не ко мне, на айпаде макросы Excel не работают)

А как данную прогу заточить на работу на Apple iPad??
И кол-во кругов до 10 увеличить.

а пароль к макросу какой?

Запустить 2 (и более) файлов можно — но каждый файл надо запускать в отдельной копии приложения Excel
Т.е. не так, что открыли один файл, потом запустили второй двойным щелчком, — так не получится.

Надо так: открыли в Excel первый файл любым способом,
потом запустили второй Excel (например, через меню ПУСК), — и вот во втором Excel через меню Файл-Открыть запускаете второй файл.

Поскольку 2 запущенных Excel между собой никак не связаны — все будет работать независимо.

Насчет увеличения участников до 50 — не проблема, можно сделать
Минимальная стоимость заказа у нас — 1000 рублей
Если устраивает, — можно доработать файл под ваши нужды.

Здравствуйте.
Интересная программа, но к сожалению два открытых секундомера одновременно не работают. Можно ли что то сделать для одновременного запуска двух файлов ? Так же интересно увеличение участников до 50. Сколько это будет стоить ? (занимаюсь организацией соревнований по ориентированию на внедорожниках). Константин.

Да, можно доработать (если готовы оплатить доработку — обращайтесь в скайп, или на почту)

Можно ли доработать программу таким образом, чтобы при нажатии старт/стоп продолжалось/останавливалось время в той же ячейке. Этот секундомер планируется использовать не для соревнований, а для хронометрирования офисных задач. т.е. одну задачу отложили, выполнили другую, потом вернулись к первой. на выходе получили суммарное время по задачам. спасибо.

Здравствуйте, Александр.
Расширить число участников можно.
Правда, если участников будет тысяча, я плохо представляю, как будет выглядеть процесс фиксации прохождения ими круга (представьте, что за 5 секунд на финиш пришли 50 участников забега. Вы успеете найти в списке из 1000 спортсменов 50 нужных, и нажать 50 кнопок за 5 секунд?)

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

Расширить число участников и вывод ротокол победителя можно

Действительно, разница есть, — если запустить таймер для всех сразу, и потом остановить главный таймер, чтобы у всех участников время зафиксировалось.
Разница во времени составляет сотые доли секунды:

Эти сотые доли секунды Excel тратит на запись времени в ячейки (запись ведется сверху вниз)

Можно, конечно, доработать макрос, чтобы запись во все ячейки производилась одновременно (и проблема исчезнет),

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

Таймер работает с одним недочетом — начисление времени производится для всех участников не одновременно, а со сдвигом времени в сторону увеличения номера участника

Таймер в excel

= Мир MS Excel/Таймер в Excel — Мир MS Excel

—> —> —> Правила форумаFAQНовости сайтаНовые сообщенияУчастникиRSS

Отметить все сообщения прочитанными и перейти на главную страницу форума

—>

  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: _Boroda_, Manyasha, SLAVICK, китин
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Таймер в Excel (Формулы/Formulas)

Таймер в Excel

vdekameronДата: Вторник, 28.10.2014, 10:55 | Сообщение № 1
Alex_STДата: Вторник, 28.10.2014, 11:09 | Сообщение № 2


С уважением,
Алексей
MS Excel 2003 — the best.

Ответить

vdekameronДата: Вторник, 28.10.2014, 11:14 | Сообщение № 3
Alex_STДата: Вторник, 28.10.2014, 11:28 | Сообщение № 4


С уважением,
Алексей
MS Excel 2003 — the best.

vdekameronДата: Вторник, 28.10.2014, 11:50 | Сообщение № 5
Alex_STДата: Вторник, 28.10.2014, 12:14 | Сообщение № 6


С уважением,
Алексей
MS Excel 2003 — the best.

Ответить

vdekameronДата: Вторник, 28.10.2014, 12:52 | Сообщение № 7
Alex_STДата: Вторник, 28.10.2014, 13:09 | Сообщение № 8


С уважением,
Алексей
MS Excel 2003 — the best.

Ответить

vdekameronДата: Вторник, 28.10.2014, 14:27 | Сообщение № 9
GustavДата: Вторник, 28.10.2014, 14:48 | Сообщение № 10

Когда-то на буржуйском форуме в теме про таймер демонстрировал «шахматные часы» на скорую руку. Может, пригодится.

Вот ссылка на тему: http://www.pcreview.co.uk/forums. 56.html . И там найти моё сообщение от 19th Oct 2006.

Когда-то на буржуйском форуме в теме про таймер демонстрировал «шахматные часы» на скорую руку. Может, пригодится.

Вот ссылка на тему: http://www.pcreview.co.uk/forums. 56.html . И там найти моё сообщение от 19th Oct 2006. Gustav

Сообщение Когда-то на буржуйском форуме в теме про таймер демонстрировал «шахматные часы» на скорую руку. Может, пригодится.

Вот ссылка на тему: http://www.pcreview.co.uk/forums. 56.html . И там найти моё сообщение от 19th Oct 2006. Автор — Gustav
Дата добавления — 28.10.2014 в 14:48

Alex_STДата: Вторник, 28.10.2014, 15:19 | Сообщение № 11

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Option Explicit
Dim TStart!, TFinish!, bStop As Boolean

Private Sub Worksheet_Activate()
CommandButton1.Caption = «Reset»
Cycle
End Sub

Private Sub CommandButton1_Click()
TStart = Timer: TFinish = Timer: bStop = True
ToggleButton1 = False: ToggleButton1.Caption = «Start»
[A1] = Format(TFinish — TStart, «0.0»)
End Sub

Private Sub ToggleButton1_Click()
ToggleButton1.Caption = IIf(ToggleButton1, «Stop», «Start»)
bStop = Not ToggleButton1
If Not bStop And ToggleButton1 Then Cycle
End Sub

Private Sub Cycle()
Do While ActiveSheet.Name = Me.Name
If bStop Or Not ToggleButton1 Then Exit Do
If Timer * 10 = Int(Timer * 10) Then TFinish = Int(Timer * 10) / 10: [A1] = Format(TFinish — TStart, «0.0»)
DoEvents
Loop
End Sub

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Option Explicit
Dim TStart!, TFinish!, bStop As Boolean

Private Sub Worksheet_Activate()
CommandButton1.Caption = «Reset»
Cycle
End Sub

Private Sub CommandButton1_Click()
TStart = Timer: TFinish = Timer: bStop = True
ToggleButton1 = False: ToggleButton1.Caption = «Start»
[A1] = Format(TFinish — TStart, «0.0»)
End Sub

Private Sub ToggleButton1_Click()
ToggleButton1.Caption = IIf(ToggleButton1, «Stop», «Start»)
bStop = Not ToggleButton1
If Not bStop And ToggleButton1 Then Cycle
End Sub

Private Sub Cycle()
Do While ActiveSheet.Name = Me.Name
If bStop Or Not ToggleButton1 Then Exit Do
If Timer * 10 = Int(Timer * 10) Then TFinish = Int(Timer * 10) / 10: [A1] = Format(TFinish — TStart, «0.0»)
DoEvents
Loop
End Sub


С уважением,
Алексей
MS Excel 2003 — the best.

Ответить

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Option Explicit
Dim TStart!, TFinish!, bStop As Boolean

Private Sub Worksheet_Activate()
CommandButton1.Caption = «Reset»
Cycle
End Sub

Private Sub CommandButton1_Click()
TStart = Timer: TFinish = Timer: bStop = True
ToggleButton1 = False: ToggleButton1.Caption = «Start»
[A1] = Format(TFinish — TStart, «0.0»)
End Sub

Private Sub ToggleButton1_Click()
ToggleButton1.Caption = IIf(ToggleButton1, «Stop», «Start»)
bStop = Not ToggleButton1
If Not bStop And ToggleButton1 Then Cycle
End Sub

Таймер в excel

Более подробную информацию о этом(и некоторых других) контролах, можно найти в статье, ознакомившись с которой Вы сможете скачать необходимый ActiveX элемент управления.

P.S. Если со скачиванием таймера возникли проблемы, то можно повторить попытку, но уже используя Архив Интернета

После того, как Вы скачали файл ietimer.ocx, переместите(или скопируйте) его в папку

Windows System если речь идёт о Win 98, Me
или
Windows System32 если установлена OC Win 2000, XP

  • Затем, откройте рабочую книгу, в которой Вы хотите создать пользовательскую форму с таймером.
  • Перейдите в редактор VBA, для этого воспользуйтесь сочетанием клавиш ALT + F11, или в меню Сервис выберите пункт Макрос и команду Редактор Visual Basic
  • В меню Вставка/Insert выберите команду UserForm , или кликните правой кнопкой мышки и в появившемся контекстном меню выберите пункт Вставить/Insert и команду UserForm
  • В меню Сервис/Tools выберите команду Ссылки/References

    В появившемся стандартном диалоговом окне, кликните кнопку Обзор/Browse

    В следующем окне, в поле со списком Папка выберите папку, в которую Вы скопировали файл ietimer.ocx. Затем, выделите нужный файл или просто введите(или вставьте из буфера обмена) текст ietimer.ocx в поле Имя файла и кликните кнопку Открыть .

    В меню Сервис/Tools выберите команду Дополнительные элементы /Additional Controls или подведите курсор мышки к панели инструментов Панель инструментов/Toolbox и кликните правой кнопкой мышки. В появившемся контекстном меню выберите команду Дополнительные элементы/ Additional Controls

    Важно : вне зависимости от выбора, Панель инструментов обязательно должна отображаться на экране, иначе Вы просто не сможете воспользоваться вышеупомянутой командой. Поэтому, если панель не видна, то в меню Вид/View выберите команду Панель элементов/Toolbox или воспользуйтесь одноимённой кнопкой с панели Стандарт/Standard

    В появившемся списке найдите и выберите следующий элемент управления Timer Object и подтвердите свой выбор нажатием кнопки OK.

  • Кликните кнопку IeTimer и расположите этот элемент управления в любом месте созданного диалогового окна.
  • Если необходимый интервал Вы хотите выставить вручную, то не снимая выделения, кликните клавишу F4 или в меню Вид выберите команду Окно свойств или просто кликните правую кнопку мышки, и в появившемся контекстном меню выберите команду Свойства

    В поле напротив Interval введите необходимый интервал, только не забывайте, что он указывается в милисекундах.

    Microsoft Excel

    трюки • приёмы • решения

    Как в VBA сделать секундомер и вывести информацию о текущем времени

    Перейдем теперь к следующей, уже более сложной разработке. Итак, на рабочем листе необходимо создать интерфейс, показанный на рис. 1.37. Здесь обозначения Часы, Минуты и Секунды представляют элементы управления «Надпись» и являются просто поясняющими надписями рядом с соответствующими текстовыми окнами, в которые выводится информация о времени. Вывод этих сведений инициирует щелчок на кнопке Отобразить время. Фактически таким образом мы реализуем на рабочем листе вариант электронных часов. Фрагмент Секундомер (это слово набрано просто в ячейке на листе) позволяет в тех же окнах реализовать функции секундомера. Работа секундомера запускается по нажатию кнопки Старт. В этом случае текстовое окно для отображения текущего часа очищается, а информация в окнах, отводимых для минут и секунд, начинает обновляться.

    Если пользователю требуется остановить отсчет времени, то он должен щелкнуть на кнопке Стоп, после чего обновление времени останавливается. В табл. 1.1 указаны имена и тины объектов, расположенных на рис. 1.37.

    Таблица 1.1. Имена объектов на рис.1.37

    Свойство NameТип объектаКомментарий
    ThТекстовое окноДля вывода текущего часа
    TmТекстовое окноДля вывода минут
    TsТекстовое окноДля вывода секунд
    VremaКнопкаCaption — Отобразить время
    StartКнопкаCaption — Старт
    StopSecКнопкаCaption — Стоп

    В качестве первого шага введем переменную Flag, которая нам понадобится для остановки обновления времени. Эта переменная должна быть известна как процедуре обработки щелчка на кнопке Старт, так и процедуре обработки щелчка на кнопке Стоп.

    Рис. 1.37. Реализация часов и секундомера

    В редакторе Visual Basic существует общая область, где можно описывать переменные (рис. 1.38), которые должны быть известны внутри нескольких процедур. Строка программы в окне, представленном на рис. 1.38, означает следующее:

    • Dim определить (это ключевое слово Visual Basic);
    • Flag имя переменной;
    • As Integer определение данной переменной как целого числа (значениями переменной могут быть только целые числа).

    Таким образом, мы определили переменную, которая должна быть известна всем процедурам на данном рабочем листе Excel. И если одна из процедур поменяет значение переменной Flag, то в другой процедуре это изменение можно увидеть. В дальнейшем мы этим воспользуемся для остановки обновления времени по щелчку на кнопке.

    Рис. 1.38. Определение переменной в общей области

    После такого вступительного комментария можно привести процедуру обработки щелчка на кнопке Отобразить время (листинг 1.18).

    ‘ Листинг 1.18. Процедура, выполняемая по щелчку на кнопке Отобразить время Private Sub Vrema_Click() Flag = 0 While Flag = 0 Th.Text = Format(Now(), «hh») Tm.Text = Format(Now(), «nn») Ts.Text = Format(Now(), «ss») DoEvents Wend End Sub

    Теперь разберем строки этой процедуры. Во-первых, здесь используется оператор цикла, который начинается со строки While Flag = 0 и заканчивается строкой Wend . После ключевого слова While располагается условие, и если оно выполняется, то выполняются все строки программы вплоть до Wend . Затем управление опять передается на строку While , и если условие вновь выполняется, то все повторяется. Если же условие не выполняется, то управление передается на первую строку после Wend .

    В строке Th.Text = Format(Now(), «hh») используются несколько внутренних функций Visual Basic. Так, функция Now() не требует входных параметров и просто выдаст текущую дату и время. В свою очередь, другая внутренняя функция, Format , позволяет задать определенный формат для выводимой информации. Если нам необходимо выделить только текущий час, то в качестве второго аргумента функции Format мы должны задать «hh». Соответственно в следующих двух строках из текущего времени выделяются минуты и секунды.

    Далее по тексту располагается внутренняя процедура Visual Basic DoEvents , которая позволяет переключаться из выполняемого программного кода на обработку других событий. В данном случае нам необходимо по щелчку на кнопке Стоп установить значение переменной Flag в 1, что реализуется в процедуре, приведенной в листинге 1.19.

    ‘ Листинг 1.19. Процедура обработки щелчка на кнопке Стоп Private Sub StopSec_Click() Flag = 1 End Sub

    Таким образом, мы обеспечили вывод текущего времени и его остановку. Что касается остановки, то она скорее требуется для секундомера. И теперь наша задача заключается в реализации его функциональности. В листинге 1.20 приведена процедура, которая выполняется по щелчку на кнопке Старт, что позволяет включить секундомер.

    ‘ Листинг 1.20. Обработка щелчка на кнопке Старт Private Sub Start_Click() Th.Text = «» Tm.Text = 0 Ts.Text = 0 Flag В = 0 ‘ Получение значения секунд Sec = Format(Now(), «ss») ‘ В переменной Shet организуем счетчик Shet = 0 While Flag = 0 Sec2 = Format(Now(), «ss») If Sec <> Sec2 Then ‘ При изменении секунд Shet = Shet + 1 Sec = Sec2 ‘ Получение минут ChetMins = Shet 60 ‘ Выделение секунд ChetSecs = Shet — ChetMins * 60 Tm.Text = ChetMins Ts.Text = ChetSecs End If DoEvents Wend End Sub

    Здесь мы использовали операцию целочисленного деления () для получения числа прошедших минут. Программа для работы секундомера готова, и на рис. 1.39 показан результат ее работы.

    Рис. 1.39. Пример работы секундомера

    Познакомимся на практике в рамках данного примера со свойством, которое определяет доступ к элементам управления. Как мы уже знаем, у элементов управления имеется свойство Enabled. Когда для этого свойства установлено значение True, доступ к данному элементу разрешен, а в противном случае (при значении False) доступ запрещен.

    Изменим предыдущую разработку следующим образом. В окне свойств для кнопок Старт и Отобразить время значение свойства Enabled установим True, а для кнопки Стоп в качестве значения этого свойства выберем False. В результате в начале работы для действий пользователя доступна кнопка, позволяющая отобразить время, и кнопка секундомера, а кнопка Стоп недоступна. Теперь при щелчке на кнопке Старт доступ к кнопке Стоп должен разрешаться, кнопка Старт должна стать недоступной. В листинге 1.21 показана модифицированная процедура обработки щелчка па кнопке Стоп, которая затрагивает свойства двух кнопок, относящихся к секундомеру.

    ‘ Листинг 1.21. Модифицированная процедура, ‘ выполняемая по щелчку на кнопке Стоп Private Sub StopSec_Click() Flag = 1 StopSec.Enabled = False Start.Enabled = True End Sub

    Также требуются небольшие изменения в процедуре обработки щелчка на кнопке Старт. Ее текст представлен в листинге 1.22.

    ‘ Листинг 1.22. Измененная процедура, ‘ выполняемая по щелчку на кнопке Старт Private Sub Start_Click() Th.Text = «» Tm.Text = 0 Ts.Text = 0 Flag = 0 Sec = Format(Now(), «ss») Shet = 0 StopSec.Enabled = True Start.Enabled = False While Flag = 0 Sec2 = Format(Now(), «ss») If Sec <> Sec2 Then Shet = Shet + 1 Sec = Sec2 ChetMins = Shet 60 ChetSecs = Shet — ChetMins * 60 Tm.Text = ChetMins Ts.Text = ChetSecs End If DoEvents Wend End Sub

    После выполненных изменений доступ к кнопкам в программе реализуется попеременно. Заметим, что по мере рассмотрения дальнейших разработок в наших статьях будет наблюдается общая тенденция на усложнение, поэтому рекомендуется каждый рассматриваемый пример прорабатывать детально. Необходимые сведения по VBA будут приводиться здесь и в последующих статьях в процессе рассмотрения разработок, поэтому явной необходимости в использовании дополнительной справочной информации нет. С другой стороны, было бы очень хорошо, если бы читатель познакомился с известными книгами по рассматриваемой теме.

    Читать еще:  Ms sql импорт из excel
    Ссылка на основную публикацию
    Adblock
    detector