powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Создание таймера с обратным отсчётом в VBA Excel
12 сообщений из 12, страница 1 из 1
Создание таймера с обратным отсчётом в VBA Excel
    #36637896
HellkilleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я работаю над созданием теста, уже практически закончил, файл прикреплю (не ругайте , что очень много кода, только учусь). Мне осталось сделать таймер обратного отсчёта, время которого зависит от количества вопросов выбранного теста(например, вопросов в тесте 8, общее время на тест 8*30=240 сек) ,после истечения которого сразу выдаётся результаты теста, даже если не ответил на все вопросы. Пробема в том, что я не совсем понимаю как он делается, я и на этом сайте искал, и гуглил... несколько вариантов нашёл, но не знаю как их присобачить к тесту.
И ещё, нужно сделать так, что бы, когда проходишь тест, нельзя было закрыть окно с вопросами (что бы заного не начать). Как это делается?
Я пролазил весь нэт, что находил - оказывалось слишком сложным для моего понимания... Помогите плиз, сдать нужно в эту пятницу (
Заранее спасибо.
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36637897
HellkilleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот сам тест
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36638377
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HellkilleR, вот простенький пример таймера:

в модуле формы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Private Sub CommandButton1_Click()
vremya = TimeValue("00:02:00")
Me.CommandButton1.Visible = False
tmr
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If vremya >  0  Then Cancel = True' 2 мин форму закрыть невозможно
End Sub

в стандартном модуле
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Public vremya As Date
Sub tmr()
UserForm1.Label1.Caption = Format(vremya, "n:ss")
vremya = vremya - TimeValue("0:00:01")
If vremya >  0  Then
    Application.OnTime Now + TimeValue("00:00:01"), "tmr"
Else
    MsgBox "Время вышло"
    UserForm1.CommandButton1.Visible = True
    UserForm1.Label1.Caption = ""
End If
End Sub
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36639770
HellkilleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а обязательно таймер должен включаться по нажатию какойто кнопки? нельзя ли сделать так, что бы включался, как только открывается форма с вопросами ?
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36640210
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HellkilleR, это пример, а Вы делайте, как требуется по задаче (UserForm.Show: ... :tmr).
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36640259
HellkilleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А если у меня время переменное ? зависит от количества вопросов в тесте, например я делаю так :(оно не определяет накую запись, почему?)

minut=kolvopr*15
vremya = TimeValue("00:minute:00")
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36640289
HEllkiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HellkilleR,

и как остановить таймер?
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36640470
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
minut=kolvopr* 15 
vremya = TimeValue("00:" & CStr(minut) & ":00")

Но Вы, кажется, хотели отводить на каждый вопрос по 15 секунд, а не минут? (minut=kolvopr*15/60)

Вообще нужно понимать, что VBA корректно выполнит объединение числа и строки и без явного
преобразования переменной. Здесь я ввожу явное преобразование, чтобы обратить на этот момент внимание.
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36640481
Фотография vlth
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HEllkillerHellkilleR,

и как остановить таймер?

Никак. Он останавливается по истечении времени (Это для экзаменуемого). Можно попытаться
в нужный момент нажать Ctrl + Break (эту гипотетическую лазейку можно нейтрализовать).

При редактировании - ставьте точки останова или пишите условия.
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36642650
HellkilleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vlth,

Большое спс, разобрался=) Писал на другие форумы, там программеры ток за деньги хотели помочь....
Ещё раз спс)
Вот окончательный вариант:
...
Рейтинг: 0 / 0
Создание таймера с обратным отсчётом в VBA Excel
    #36642656
HellkilleR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пардон, ошибся копией ,вот :
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Создание таймера с обратным отсчётом в VBA Excel
    #38993037
Фотография PlomBir1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Хотел сделать тест, и вроде всё подошло, посмотрел макросы но не понял куда записывать вопрос с вариантом ответов)
И как время регулировать.
Может кто подскажет?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Создание таймера с обратным отсчётом в VBA Excel
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]