Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
Автоматический запуск макроса при открытии книги (с условием бездействия пользователя определенное время)
 
Добрый вечер, уважаемые форумчане

Думаю над одной задачкой, но никак не могу додумать, помогите пожалуйста.

Необходимо чтобы при открытии книги появлялось окно msgbox, в котором есть две кнопки Да и Отмена

Если нажимаешь Да, то запускается макрос (Macro1)
Если нажимаешь Отмена, то макрос (Macro1) не запускается

Но как нужно модифицировать код, так чтобы, если в течение 5 секунд после открытия книги и бездействия пользователя (т.е. не нажата ни одна кнопка в msgbox), окно msgbox закрывалось, а сам макрос (Macro1) был запущен ?

В качестве начального решения использовал следующий код, но он почему-то не закрывает автоматически окно MsgBox и не запускает макрос,
Код
Private Sub Workbook_Open()

Dim msg As String, runcode As Long

msg = "Нажмите Отмена для отмены запуска макроса, в противном случае макрос будет запущен в течение 5 сек.!"

runcode = CreateObject("Wscript.Shell").Popup(msg, 5, "Выберите действия:", vbOKCancel)

If runcode = 2 Then End

Call Macro1

End Sub
и
Код
Sub Macro1()
MsgBox "макрос"
End Sub
 
Добрый вечер.
Этот popup надёжно работает только в vbs, а в макросе например у меня тоже не работает. А у кого-то работает...
Тут нужно свою форму делать, или CustomMsgbox.
Или вот - как работает я честно не понял :)
 

Здравствуйте.
Изменено:
Все работает, как вы делали я не знаю.

Здесь код

Ниже автор темы написал:
Цитата
если же повесить запуск данного макроса на событие workbook open, то окно показывается, но уже не закрывается, видимо все те же чудеса vbs
В Excel 2010 и 2016 все нормально работает, и показывается, и закрывается.
P.S Чтобы работало мало написать Workbook_Open, нужно код поместить в модуль Эта книга, а не в обычный Module1.
Вот файл:

Изменено: DANIKOLA - 18 окт 2020 09:32:34 (В файле примере добавил описание)
 
Hugo, спасибо за пример, очень интересный, буду изучать.
теперь понял, почему у меня код ни туда ни сюда не работал, оказывается дело в vbs

DANIKOLA, попробовал использовать Ваш вариант, все также без изменений, файл открывается и ничего дальше не происходит (

Заметил один момент, если запускать макрос через кнопку Popup msg, то окно закрывается автоматически через 3 секунды, если же повесить запуск данного макроса на событие workbook open, то окно показывается, но уже не закрывается, видимо все те же чудеса vbs
 
Ребята, поломал еще немного голову над всей этой задачкой, решил сделать выбор в пользу UserForm, но и там меня ждала куча вопросов, к счастью удалось их все решить, поэтому кому интересно, выкладываю финальный вариант решения

P.S. для красоты добавил в форму таймер с обратным отсчетом )

Изменено: pinguindell - 18 окт 2020 14:44:08
Страницы: 1
Читают тему (гостей: 1)
Наверх