powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / прерывание и возврат в процедуру
8 сообщений из 8, страница 1 из 1
прерывание и возврат в процедуру
    #35711749
nosebien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Форумчане, помогите со следующей задачей:
есть файл Excel. в нем обрабатываются опред. данные.
При нажатии на кнопку в этом файле необходимо создать процедуру создания нового файла с определенным именем, куда передаются данные из первого файла. Тут процедура должна прерваться и вновь созданный файл сделаться активным.
Далее во вновь созданном файле пользователь производит определенные действия, и на событие ЗАКРЫТИЯ этого файла процедура первого файла, которая ранее прервалась должна возобновиться и продолжиться! - возможно ли такое сделать?

написать код создания другой книги - это сделано.
а как остановить процедуру и заставить ее продолжиться только после закрытия этой созданной книги?

спасибо
...
Рейтинг: 0 / 0
прерывание и возврат в процедуру
    #35712043
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosebien,
ну если буквально, то делаете так:

объявляете глобальную переменную, допустим stopper( она инициализируется нулем)

в вашей процедуре вписываете в нужном месте код

stopper=1
do
doevents
loop while stopper>0

оно крутится пока переменная не изменится..

а изменять по закрытию второй книги:

sub workbook_beforclose()
stopper=0



хотя проще разбить на две процедуры и вторую запускать по закрытии книги.
...
Рейтинг: 0 / 0
прерывание и возврат в процедуру
    #35712166
nosebien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_slan_nosebien,
ну если буквально, то делаете так:

....

а изменять по закрытию второй книги:

sub workbook_beforclose()
stopper=0



хотя проще разбить на две процедуры и вторую запускать по закрытии книги.

что значит изменять по закрытию книги?
ведь каждый раз вторая книга создается вновь.

вот меня интересует как написать процедуру закрытия второй книги? и чтоб после ее выполнения, продолжилась процедура первой книги?
...
Рейтинг: 0 / 0
прерывание и возврат в процедуру
    #35712234
_slan_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nosebien,
два пути
1 создать модуль класса в первой киге(или в любой другой, загруженной постоянно) и там отслеживать события

2 дописать код прямо во вторую книгу

первое предпочтительней.
...
Рейтинг: 0 / 0
прерывание и возврат в процедуру
    #35712313
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Элементарно.
В главной книге делаешь глобальную переменную для вновь создаваемой книги. В первом макросе записываешь в эту переменную ссылку на свежесозданную книгу.
В главной книге создаешь класс с объектом типа Application и перехватываешь событие Application_WorkbookBeforeClose. В нем проверяешь что закрываемая книга та которую ты сам создал и делаешь что надо.
Лови пример.
...
Рейтинг: 0 / 0
прерывание и возврат в процедуру
    #35713837
nosebien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlЭлементарно.
В главной книге делаешь глобальную переменную для вновь создаваемой книги. В первом макросе записываешь в эту переменную ссылку на свежесозданную книгу.
В главной книге создаешь класс с объектом типа Application и перехватываешь событие Application_WorkbookBeforeClose. В нем проверяешь что закрываемая книга та которую ты сам создал и делаешь что надо.
Лови пример.

Спасибо, тут все понятно.
НО!
меня интересует следующее:
при нажатии на кнопку в твоем примере происходит создание нового файла и тд.
ТАК ВОТ, далее, когда создан новый файл - там тоже происходят определенные действия, и при его ЗАКРЫТИИ процедура нажатия кнопки первого файла должна возобновляться!

как если бы в первом файле на нажатии кнопки стоял цикл! в котором сождается новый файл, цикл останавливается, пока новый файл не закроется. а потом возобновляется!

например, в твоем примере событие кнопки:
ActiveCell.Activate
Workbooks.Add
X.name_of_my_new_book = ActiveWorkbook.Name

''''так вот далее пользователь закрывает книгу
''' и тут же событие продолжается
msgbox "The new workbook was closed"

Так можно сделать?
...
Рейтинг: 0 / 0
прерывание и возврат в процедуру
    #35713972
A-Nik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
nosebien,
Ты лучше напиши что ты конкретно хочешь сделать ? Может кто предложет как это можно реализвать совсем по другому, а не так, как ты себе наметил... ;-)
...
Рейтинг: 0 / 0
прерывание и возврат в процедуру
    #35714007
nosebien
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlЭлементарно.
В главной книге делаешь глобальную переменную для вновь создаваемой книги. В первом макросе записываешь в эту переменную ссылку на свежесозданную книгу.
В главной книге создаешь класс с объектом типа Application и перехватываешь событие Application_WorkbookBeforeClose. В нем проверяешь что закрываемая книга та которую ты сам создал и делаешь что надо.
Лови пример.

все я поняла :)

спасибо!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / прерывание и возврат в процедуру
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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