Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 17.07.2013
Сообщений: 35
1

Выполнение макроса внутри диалогового окна Excel

11.02.2016, 17:34. Показов 2083. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброго времени суток, уважаемые гуру! Подскажите, пожалуйста, можно ли запустить выполнение макроса внутри диалогового окна, и в случае необходимости по кнопке стоп оставить его выполнение?

Если из модуля вызвать окно таким образом:
Visual Basic
1
2
MyDialogForm.Show 0
Call MyDialogForm.call_something
тогда окно будет висеть без возможности манипуляции. Есть ли возможность сделать так, чтобы скрипт внутри окна выполнялся, но при этом можно было прервать операцию по кнопке "СТОП"?

Если не трудно дайте простенький пример, или ссылку на такой процесс. Спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2016, 17:34
Ответы с готовыми решениями:

Вызов диалогового окна выбора цвета (Excel)
Как вызвать диалоговое окно выбора цвета и как получить из него значение для закраски ячейки? Или...

Открытие документа Word из Excel с использованием диалогового окна
Здравствуйте. Столкнулся с такой проблемой: не получается написать макрос который после запуска из...

Выполнение макроса для всех ячеек столбца Excel
Здравствуйте! Мне нужно сделать так что бы макрос выполнялся для всех ячеек столбца. Этот пример...

Как присвоить переменную одного диалогового окна к переменной другого диалогового окна? (ООП)
Вот у меня есть результат вычисления и я его присваиваю переменной в первом диалоговом окне, но я...

5
19 / 19 / 5
Регистрация: 23.04.2014
Сообщений: 72
11.02.2016, 17:42 2
Я, в свое время, выкручивался из такой ситуации следующим образом.
Ставил флаг (например на невидимый лейбл, если речь идет о форме), при кнопке "СТАРТ" флаг менялся на 1 и запускался нужный скрипт. В начале скрипта ставишь проверку на флаг = 1. В конце скрипта ставишь таймер на повтор этой же процедуры через секунду. По кнопке "СТОП" флаг = 0. Вот и все
0
15146 / 6419 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.02.2016, 17:54 3
Цитата Сообщение от EvgenSanich Посмотреть сообщение
тогда окно будет висеть без возможности манипуляции
В свойствах формы ShowModal=False - и пожалуйста, выполняйте макрос или работайте с документом при открытой форме.
1
19 / 19 / 5
Регистрация: 23.04.2014
Сообщений: 72
11.02.2016, 17:56 4
Цитата Сообщение от Казанский Посмотреть сообщение
ShowModal=False
Цитата Сообщение от EvgenSanich Посмотреть сообщение
MyDialogForm.Show 0
А разве это не одно и то же ?
1
Заблокирован
11.02.2016, 18:04 5
Лучший ответ Сообщение было отмечено EvgenSanich как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DIM FLAG AS BOOLEAN
 
PRIVATE SUB КНОПКА_СТОП_CLICK
FLAG =NOT FLAG 
END SUB
 
sub call_something'ОЧЕНЬ ДЛИННАЯ ПРОЦЕДУРА
 
for each ...'ОЧЕНЬ ДЛИННЫЙ цыкл
 
  'Ваш длинный код
 
  DOEVENTS
  IF FLAG THEN EXIT SUB
 
next
 
end sub
2
0 / 0 / 0
Регистрация: 17.07.2013
Сообщений: 35
11.02.2016, 22:03  [ТС] 6
Спасибо всем! помог вариант Shersh. Фишка в том, что флаги надо выставлять на каждом "под-цикле", тогда в процессе выполнения всего скрипта (ну или петли) можно по кнопке "стоп" тормозить выполнение. Полезная штука кстати в организации простенького progress bar'а и отслеживания работы больших скриптов.

P.S. отдельное спасибо quende за тему с флагами и казанскому за ShowModal в настройка, буду знать. Надеюсь правильно ник неймы написал
0
11.02.2016, 22:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.02.2016, 22:03
Помогаю со студенческими работами здесь

Как сделать вычисления внутри диалогового окна, а не по сообщению
Как в VisualBasic 2010 сделать так, чтобы все вычисления проходили внутри диалогового окна? К...

Открытие диалогового окна Word в документе Excel
Здравствуйте! Надеюсь на отзывчивых людей)) Задача следующая: Открыть excel и там же с помощью...

Выполнение Макроса Access из надстройки Excel
Приветствую всех. Товарищи помогите решить проблему: В Access есть макрос - нужно при нажатии...

Удержание окна с текущими введенными значениями после диалогового окна (с предупреждением)
Здравствуйте, есть маленькая задачка. Форма добавления ТС, открывается с основной формы. Нужно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru