Поиск  Пользователи  Правила 
Закрыть
Логин:
Пароль:
Забыли свой пароль?
Регистрация
Войти
 
Страницы: 1
RSS
MsgBox - запуск макроса, Привязать к "ДА" запуск макроса
 

добрый день.

помогите решить проблему .
Написан макрос, для обработки данных - макрос работает

хотел его привязать к msgbox
А сам msgbox к активации листа

На активацию листа прописан макрос который вызывает сообщение msgbox

Код
Private Sub Worksheet_Activate()
Call refresh_msgboxEnd Sub

А вот сам msgbox
Код
If MsgBox("Îáíîâèòü èíôîðìàöèþ äî Àêòóàëüíîé?", vbOKCancel, " - Refresh") = vbYes Then refresh_l
If MsgBox("Îáíîâèòü èíôîðìàöèþ äî Àêòóàëüíîé?", vbOKCancel, " - Refresh") = vbNo Then
"Refresh_l"- название макроса который обрабатывает данные


Помогите правильно написать макрос для активации листа с msgbox и для запуска макроса по условию что нажмут на YES

Спасибо
Изменено: Homavi - 23 Фев 2017 16:00:43
 
Код
If MsgBox("Запустить макрос?", vbYesNo + 32, "Выш выбор?") = vbYes Then Call макрос1


Копируйте код при русской раскладке клавиатуры.
 
Юрий М, все заработало, НО почему то он еще раз октрывает данный msgbox после макроса
 
У меня только один раз )
Покажите оба кода.
 
Код
Private Sub Worksheet_Activate()
Call refresh_msgbox
End Sub

Sub refresh_msgbox()
If MsgBox("Обновить информацию до Актуальной?" & Chr(10) & "Обновление займет примерно 3 минуты.", vbYesNo + 32, "Refresh") = vbYes Then
Call refresh
Call Pivottable
Else: Exit SubEnd If
Sheets("statistic").SelectEnd Sub
Макрос на активации страницы
Изменено: Homavi - 23 Фев 2017 17:15:52
 
Что-то Вы перемудрили: строку с MsgBox с вопросом напишите на событие активации листа. Если ответ положительный - вызываем нужный макрос. Иначе выход. Не нужна отдельная процедура.
 
В модуль листа. Дополнительная процедура не нужна.
Код
Private Sub Worksheet_Activate()
    If MsgBox("Запустить макрос?", vbYesNo + 32, "Выш выбор?") = vbYes Then
        Call макрос1
        Call макрос2
    End If
End Sub


 
Юрий М, понял в чем ошибка.
макрос который выполняет обработку данных , после завершения возвращается на страницу где вылезает сообщение.

Поэтому это замкнутый круг ((

можно ли отменить повторный запуск окна msgbox ?
 
Можно. Например, добавьте переменную-флаг. Или отключайте события.
 
Код
Private Sub Worksheet_Activate()
    If MsgBox("Запустить макрос?", vbYesNo + 32, "Выш выбор?") = vbYes Then
        Application.EnableEvents = False
        Call макрос1
        Sheets("Лист2").Activate
        Call макрос2
        Sheets("Лист1").Activate
    End If
    Application.EnableEvents = True
End Sub



Страницы: 1
Читают тему (гостей: 1)