Привет всем! Столкнулся с такой ситуацией: есть файл с макросом, есть файл с исходными данными, из которого макрос по нажатию кнопки забирает данные. Изначально это работает так, что сначала файл с исходными данными, создаётся или обновляется/изменяется или заменяется новым. После этого в файле с макросом, нажимается кнопка и все данные из файла с исходными данными идут в нужное место. Подскажите как можно это сделать без нажатия кнопки, что бы при копировании файла с исх данными в папку происходило чудо) файл с макросом изначально открыт и все данные из файла с исх данными идут в него. Заранее спасибо)
Запуск макроса при добавлении, обновлении или изменении файла в папке
11.09.2018 12:18:54
|
|
|
|
11.09.2018 12:20:13
Когда файл с макросом закрыт, Вы все равно не видите данные. Обновлять по событию откртия книги.
|
|
|
|
11.09.2018 12:23:00
А другие то есть варианты? Книга с макросом изначально открыта, это принципиально важно
|
|
|
|
11.09.2018 12:28:05
А почему кнопку обижаете? )
Силой мысли не получится запустить макрос - нужно какое-нибудь событие. Какое - выбирать Вам. |
|
|
|
11.09.2018 12:34:35
Юрий М, да, вот и я про то же, как определить изменение или замену файла событием для запуска макроса?)
Изменено: |
|
|
|
11.09.2018 12:45:17
А вариант запуска макроса-сборщика на событие закрытия книги не подойдёт?
|
|
|
|
11.09.2018 13:10:27
2. макрос Excel срабатывает только на события Excel. 3. отсюда следует, что если этот кто-то (что-то) - не Excel (или не другая программа, в которой предусмотрено программирование с использованием объектной модели Excel), то ничего не получится.
Изменено:
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
|
|||
|
|
11.09.2018 13:30:41
BeatCrusher, можно раз в минуту (или секунду) проверять дату последнего изменения файла с данными. Если значение изменилось, то запустить процедуру обработки данных и запомнить новую дату последнего изменения.
|
|
|
|
11.09.2018 13:32:39
Запускать макрос при изменении данных в книге-источнике (макрос - в этой книге).
|
|
|
|
11.09.2018 13:51:24
Вить, твой вариант из #9 не подойдёт:
|
|||
|
|
11.09.2018 13:59:34
Юрий М, по сути он лежит там постоянно, люди постоянно заменяют его на файл с таким же именем
|
|
|
|
11.09.2018 14:02:22
Казанский, класс! Что надо написать что бы макрос это делал?
|
|
|
|
11.09.2018 14:06:12
|
|||
|
|
11.09.2018 14:11:07
Юрий М, нет. Все макросы в соседнем файле в этой же папке
|
|
|
|
11.09.2018 14:46:56
Вот я об этом и говорю. Значит, нужно из другой (внешней) процедуры отслеживать изменения, произошедшие в книге-доноре. Почитайте эту
|
|
|
|
11.09.2018 14:47:45
BeatCrusher, делал подобное недавно:
Там не только DateLastModified проверяется, но и содержимое файла, что Вам не нужно. На VBA надо будет использовать Application.Ontime, а не задержку WScript.Sleep - поищите на форуме. |
|
|
|
11.09.2018 14:56:37
можно конечно все усложнить и сделать на основе
По вопросам из тем форума, личку не читаю.
|
|
|
|
11.09.2018 15:04:10
И всё это из-за того, что трудно нажать кнопочку )
|
|
|
|
11.09.2018 15:13:38
Юрий М, А как же прогресс, автоматизация? :-)
По вопросам из тем форума, личку не читаю.
|
|
|
|
11.09.2018 15:23:44
Казанский, сейчас возможно будет глупый вопрос... А это писать в код книги или модуля? И если я правильно понял надо создавать отдельный текстовый файл, чтобы туда записывать последнюю дату изменения?
|
|
|
|
11.09.2018 15:28:22
|
|
|
|
12.09.2018 09:15:47
Всем, доброго дня! Попробовал вчера сделать что-то по аналогии с решением Казанского, работает криво, таблица обновляется, но потом всё зависает и приходится останавливать. М
Изменено: |
|||
|
|
12.09.2018 12:09:49
BeatCrusher, код следует оформлять соответствующим тегом: ищите такую кнопку (см. скрин) и исправьте своё сообщение.
|
|
|
|
12.09.2018 13:09:40
|
|||
|
|
13.09.2018 14:50:32
BeatCrusher,
Изменено: |
||||
|
|
|||