Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.02.2022, 11:59   #1
aie.fineff
Пользователь
 
Регистрация: 02.07.2019
Сообщений: 25
По умолчанию обращение к Userform из другого макроса

Добрый день!

Подскажите, пожалуйста, по следующему вопросу.

При запуске макроса открывается Userform в режиме vbModeless. В этом Userform отражается ход выполнения макроса (какие операции уже сделаны, какие выполняются сейчас и какие предстоит выполнить дальше). По завершению макроса данный Userform закрывается.

В ходе выполнения макроса запускается другой макрос (через Application.run). Вопрос: как из этого второго макроса внести информацию о ходе его выполнения в вышеуказанную Userform?

Облазил интернет, не нашёл ответа. Буду очень благодарен за помощь.
aie.fineff вне форума Ответить с цитированием
Старый 11.02.2022, 12:28   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

как реализован ход выполнения первого макроса, может второй по аналогии сделать получится?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 11.02.2022, 12:44   #3
aie.fineff
Пользователь
 
Регистрация: 02.07.2019
Сообщений: 25
По умолчанию

Aleksandr H., Да, есть, конечно, вариант: закрыть userform в первом макросе - открыть во втором (с заполнением всех label, которые были заполнены в первом макросе) - по завершении второго макроса закрыть этот userform - по возвращению в первый макрос открыть снова данный userform с label, заполненными до запуска второго макроса и во время работы этого макроса.

Такой вариант срабатывает хорошо, в-принципе, но довольно муторный - label в userform довольно много и запусков других макросов из первого тоже много (пришлось дробить модуль на несколько модулей, поскольку в одном всё не уместилось). И постоянно по всему модулю "волочить" открытие-закрытие userform со всеми заполненными label немножко напрягает.

Думал, может, есть какой-нибудь вариант, чтобы всё-таки не закрывать userform и чтобы он отработал по всем макросам, запускаемым из одного, главного, макроса.

Последний раз редактировалось aie.fineff; 11.02.2022 в 12:48.
aie.fineff вне форума Ответить с цитированием
Старый 11.02.2022, 12:54   #4
aie.fineff
Пользователь
 
Регистрация: 02.07.2019
Сообщений: 25
По умолчанию

Активация userform в первом, главном, макросе, производится у меня так:
Userform.Show vbModeless
DoEvents

Потом по ходу его выполнения заполняются label, например:
Userform.Label1.Caption = "Готово"
Userform.Repaint

Как я понимаю, чтобы этот Userform подкрепить к второму макросу надо вначале этого макроса вместо указанного метода .Show vbModeless что-то другое прописать.
А вот что - не понятно.
aie.fineff вне форума Ответить с цитированием
Старый 11.02.2022, 13:14   #5
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от aie.fineff Посмотреть сообщение
Как я понимаю, чтобы этот Userform подкрепить к второму макросу надо вначале этого макроса вместо указанного метода .Show vbModeless что-то другое прописать.
А вот что - не понятно.
попробуйте ничего не писать вместо .Show, а зразу же в нужных местах
Код:
Userform.LabelХ.Caption = "jakikolwiek tekst"
Userform.Repaint
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 11.02.2022, 14:00   #6
aie.fineff
Пользователь
 
Регистрация: 02.07.2019
Сообщений: 25
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
попробуйте ничего не писать вместо .Show, а зразу же в нужных местах
Код:
Userform.LabelХ.Caption = "jakikolwiek tekst"
Userform.Repaint
Так, к сожалению, не срабатывает. Я уже пробовал такой вариант.
aie.fineff вне форума Ответить с цитированием
Старый 11.02.2022, 17:01   #7
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обращение к форме из другого потока Antony41 C# (си шарп) 1 19.04.2021 08:18
обращение к элементу формы из другого файла temik612 Общие вопросы C/C++ 2 17.03.2013 20:50
Вызов макроса внутри другого макроса. Небесный Microsoft Office Word 1 05.11.2012 22:38
Как ComboBox на UserForm заполнить данными с другого листа ? Snekich Microsoft Office Excel 2 08.12.2011 18:37
Запуск макроса с параметрами из другого макроса Saladin Microsoft Office Excel 2 19.01.2009 09:43