powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Как лучше сделать?
8 сообщений из 8, страница 1 из 1
Как лучше сделать?
    #33252118
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть экселевский файл 1.xls.
В нем - макрос A, который заполняет таблицу файла 1.xls данными, которые высчитываются на основе данных таблицы другого файла 2.xls (причем, в примечании в ячейкам должны записываться координаты ячейки-источника файла 2.xls)
В файле 1.xls в модуле листа, который заполняется, я хочу сделать Worksheet_Update, которая должна запускаться при изменении данных в таблице, а именно - менять данные в исходной таблице (файл 2.xls) при изменении данных в ячейках таблицы файла 1.xls.

С какой трудностью я столкнулся? При запуске макроса А и заполнении таблицы новыми значеними, начинают обновляться данные и в таблице-источнике, что, согласитесь, глупо. Можно ли как-то обойти этот эпизод? Или посоветуйте что-нибудь, как вы считаете лучше реализовать данную задачу.
...
Рейтинг: 0 / 0
Как лучше сделать?
    #33252242
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не пойму что-то.
1. Макрос А заполняет файл 1.xls данными (или на основе данных) из файла 2.xls.
2. Происходит правка данных в файле 1.xls
3. Запускается макрос, который заполняет файл 2.xls данными, измененными в файле 1.xls
Я так понял? Если да, то что-то не вижу проблемы.

А вот в это я вообще не врубаюсь:
-GL-При запуске макроса А и заполнении таблицы новыми значеними, начинают обновляться данные и в таблице-источнике, что, согласитесь, глупо.
-GL-В файле 1.xls в модуле листа, который заполняется, я хочу сделать Worksheet_Update, которая должна запускаться при изменении данных в таблице, а именно - менять данные в исходной таблице (файл 2.xls) при изменении данных в ячейках таблицы файла 1.xls.
Так ты хочешь менять данные в исходном файле 2.xls или нет?
...
Рейтинг: 0 / 0
Как лучше сделать?
    #33252313
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
действительно сумбурно, но может это поможет (в макрос А вставить).
это я интуичу, что хотел автор вопроса-:)

Application.EnableEvents = False
.......
Application.EnableEvents = True
...
Рейтинг: 0 / 0
Как лучше сделать?
    #33252393
Фотография k-nike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sergeyvgдействительно сумбурно, но может это поможет (в макрос А вставить).
это я интуичу, что хотел автор вопроса-:)

Application.EnableEvents = False
.......
Application.EnableEvents = True
Ааааа... Кажется, и до меня дошло :)
...
Рейтинг: 0 / 0
Как лучше сделать?
    #33252740
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
k-nikeНе пойму что-то.
1. Макрос А заполняет файл 1.xls данными (или на основе данных) из файла 2.xls.
2. Происходит правка данных в файле 1.xls
3. Запускается макрос, который заполняет файл 2.xls данными, измененными в файле 1.xls
Я так понял? Если да, то что-то не вижу проблемы.

А вот в это я вообще не врубаюсь:
-GL-При запуске макроса А и заполнении таблицы новыми значеними, начинают обновляться данные и в таблице-источнике, что, согласитесь, глупо.
-GL-В файле 1.xls в модуле листа, который заполняется, я хочу сделать Worksheet_Update, которая должна запускаться при изменении данных в таблице, а именно - менять данные в исходной таблице (файл 2.xls) при изменении данных в ячейках таблицы файла 1.xls.
Так ты хочешь менять данные в исходном файле 2.xls или нет?

1. Пусть будет так: макрос А заполняет файл 1.xls данными из файла 2.xls (но определенным образом).
2. Происходит правка данных в файле 1.xls.
А дальше в этом же файле я хочу поставить процедуру обработки события (обновления страницы или скажем определенного диапазона ячеек). Т.е. Если какие-то данные обновились в 1.xls, то и соответсвующие ячейки в 2.xls тоже обновятся. Спросите: а как я собираюсь запоминать координаты ячеек в 2.xls? Для этого я заношу их в комментарий ячейки в 1.xls.
Но повторюсь еще раз - это делает не макрос в 2.xls, а процедура обработки события в 1.xls.

Проблема состоит вот в чем.
Допустим, я запускаю макрос А. У меня начинает заполняться 1.xls и в то же время происходит событие - обновление ячеек, а следовательно и лишняя работа - обновление данных в 2.xls.
Вопрос: можно ли как то отключать\включать эту процедуру только тогда, когда происходит правка данных пользователем? (а не работа макроса)

По поводу Application.EnableEvents. Что это конкретно мне позволяет сделать? И как им правильно пользоваться, если это то, что мне нужно?
...
Рейтинг: 0 / 0
Как лучше сделать?
    #33252781
-GL-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо и отбой с последним постом. Все супер!!!

Последний вопросик:
Поскольку у меня делаются изменения в другом файле таким, то в случае закрытия выскакивает сообщение о подтверждении сохранений.
Как можно избежать этого сообщения? Т.е., чтобы все делалось автоматом. Причем такая схема должна работать только в этом случае. Далее при работе вопросик все-таки должен выскакивать (т.е. потом нужно поставить все на место)
...
Рейтинг: 0 / 0
Как лучше сделать?
    #33252905
Код: plaintext
1.
Workbooks("BOOK1.XLS").Close SaveChanges:=True
...
Рейтинг: 0 / 0
Как лучше сделать?
    #33252906
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
опять достойный вопрос:) все-таки нужно жалеть читателей, приводите куски кода, может будет нам понятней.
я так понимаю, что сохранять файл в некоторых случаях не надо, надеюсь такой вариант устроит, он имитирует, что книга уже сохранена и не надо задавать вопросов

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


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