Страницы: 1
RSS
Несколько секундомеров на одном листе. VBA
 
Добрый день. Помогите пожалуйста. Делаю простой учет времени сотрудников и столкнулся с такой проблемой. Я не знаю как сделать что бы несколько таймеров работали одновременно и не мешали работать друг другу.  
 
Здесь есть макрос, который вы можете взять за основу
https://excelvba.ru/programmes/StopWatch

ну и еще один похожий:
https://excelvba.ru/programmes/Timer
Изменено: Игорь - 27.09.2019 11:02:27
 
Пример для второго секундомера из первого примера:
Код
Dim Start, Pause, Triger

Sub StartClock2()
    Pause = 1
    Triger = 0
    [M9] = "00:00:00"
    UpdateClock2
End Sub

Sub StopClock2()
    Triger = 1
End Sub

Sub UpdateClock2()
    Start = Timer
    Do While Timer < Start + Pause And Triger = 0
       DoEvents
    Loop
    If Triger = 0 Then
        [M9] = [M9] + TimeValue("00:00:01")
        UpdateClock2
    End If
End Sub
И повесить правильные макросы на нажатие кнопок.
Изменено: PopMix - 27.09.2019 11:08:07
 
см. вложение
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
PopMix, Может я что то не правильно делаю. Но при включении второго секундомера первый останавливается и на оборот.
Изменено: stlove77 - 27.09.2019 11:36:42
 
количество секундомеров ограничено количеством строк на листе
отсчитываю все, что включены)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Простите за безграмотность, не совсем понимаю как поменять столбец с секундомером. Как переместить  секундомер в другую часть.  
 
видите-ли разница между нами в том, что Вы
не совсем понимаете
а я
совсем не понимаю
куда что переносить. "другая часть" - очень неопределенное понятие((, с точки зрения программирования "другая часть" = "никуда" (а смысл переносить в "никуда"???)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Секундомер в выложенном вами примере находится на всех ячейках столбца C. Если секундомер перенести на другой диапазон. Например Столбец М.

Если вас не затруднит сделайте пожалуйста пример. Что бы секундомер находился на столбце M. Я сравню изменения в коде.  
 
0. остановите все секундомеры
1. открываете редактор VBE (нажмите Alt+F11)
2. жмете Ctrl+H
в открывшемся окне:
- в поле Find What пишите 3
- в поле Replace With пишите 13
- отметьте Current Project
- и Find Whole Word Only
3. жмете Replace All
4. возвращаетесь на лист книги, поставьте колонке М формат время, управляйте секундомерами, они теперь будуть тикать в колонке М
удачи!

и если секундомеров реально нужно много, то нужно будет данные забрать в массивы и обрабатывать их, а то перебирать ячейки на листе может оказаться  очень расточительно по времени выполнения
Изменено: Ігор Гончаренко - 27.09.2019 13:35:53
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Ігор Гончаренко, Понятно. Спасибо.
Страницы: 1
Наверх