Страницы: 1
RSS
Учет времени для задачи
 
Добрый вечер, товарищи.

Вопрос у меня сложный (касаемо исполнения)
Подскажите, пожалуйста выполнима ли просьба или направьте куда обратиться (русские/зарубежные форумы специализированные)
Что необходимо: учёт времени.
Как я это вижу - в прикрепленном ниже файле.
Плюс должна быть возможность продолжения учета: допустим я что-то делал, нажал "стоп" - время затраченное 7 минут. Повторно нажимаю "старт" и учет продолжается с этих 7 минут.

Надеюсь, вопрос понятен.
 
Код
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

таймер прописывает отсчет в ячейке А1, чтобы начать заново очищаете ячейку А1 вручную.
 
суть в том - что будет список задач (больше сотни)
допустим я захожу - запускаю задачу (идет отсчет времени), что-то там поделал, остановил, закрыл документ. Потом открываю - и запускаю с того же времени на котором остановился.
и нужны кнопки в самом экселе.

что-то типа такого, только с более расширенными возможностями. Чтобы я смог проставить кнопки секундомера на уже готовый список задач в готовом документе.
Изменено: Shoez - 07.05.2015 18:28:07
 
без кнопок.
даблклик по названию задачи.
повторный даблклик - стоп.
даблклик по другой задаче останавливает текущую и запускает новую.
обновляется раз в секунду (задается константой в коде).
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
Цитата
ikki написал: без кнопок
отличный вариант
а как размножать эти секундомеры? я просто, мягко говоря, не силён в вещах с вба
 
адрес диапазона задан в коде модуля листа.
ПКМ по ярлыку листа - "исходный текст", ищете фрагмент [a9:a19], меняете на свой
изменить шаг таймера - в стандартном модуле Module1 (константа tStep) - 1 секунда непрактично, слишком часто.

для переноса в другую книгу - надо будет ещё скопировать модуль Module1 и процедуру из модуля книги.

пс. и не цитируйте сообщения целиком - на это есть соотв.пункт в правилах, раз уж простой логики не хватает ;)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
а, ну и еще если первая строка диапазона задач будет отличной от 9, нужно будет соотв.образом изменить в коде процедуры Worksheet_BeforeDoubleClick 8-ку на другое число (в двух местах)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki, Доброе утро

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

это же просто пример, а не готовое приложение
и его задача - продемонстрировать принципиальную возможность реализуемости вашей задачи
то, что Вы и просили ;)
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
файлик
фрилансер Excel, VBA - контакты в профиле
"Совершенствоваться не обязательно. Выживание — дело добровольное." Э.Деминг
 
ikki,дай Вам Бог здоровья! :)
Страницы: 1
Читают тему
Наверх