|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
Нужна помощь!!! Ситуация следующая я через Access управляю несколькими книгами Excel в одной из книг есть макрос на события изменения в ячейке. Если книгу открывать как обычно в экселе то все работает А вот если книгу открывать программно из Access то данное событие не работает. Подскажите, как заставить заработать события в управляемых книгах. Как вызвать макрос по названию из любой книги писать не надо, это не есть цель. Цель именно в том, чтобы события заработали самостоятельно, или как вариант, как сделать так чтобы из под Access получить возможность отслеживать события в книгах. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:11 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
m.netdaкак сделать так чтобы из под Access получить возможность отслеживать события в книгах.Можно же подписаться на события как обычно через WithEvents ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 13:29 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
m.netda, При открытии через Access разрешено исполнение макроса? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:10 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
[/quot]Можно же подписаться на события как обычно через WithEvents[/quot] Я не разу не работал с WithEvents, как раз гуглю эту тему но пока не как не врубаюсь как это работает в ACCess WithEvents почему то только в классах можно объявить. Если у вас есть пример буду очень благодарен ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:18 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
21859454 |> http://%5Bmsg=21859454]] Если я его запускаю через application.run (Имя макроса), то все ок, но это блин такой костыль мне в итоге придется не одно событие так отслеживать а пару десятков, и каждый раз писать такой костыль совсем не хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:23 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
m.netda, Application.Run запускает макрос от имени Access, как я полагаю, а исполнение макросов должно быть разрешено для запущенного Excel. Я бы открыл Excel в режими видиомсти и проверил с какими настройками он запущен. А еще, смотря как изменяется ячейка. Если ее значение меняется в результате пересчета формулы, то такое изменение не будет считается изменением значения ячейки и событие "выстреливать" не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:32 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
iMrTidy, Чет немного в замешательстве. Запуск макросов разрешен в настройках центра безопасности. Вы об этом говорите? Или есть еще настройка которую надо принудительно включить. Значение в ячейку прилетает из внешней ссылки на другой файл ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:50 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
m.netda, Сейчас точно не смогу сказать, но, возможно, что Access, запускает Excel средствами InterOp, в таком случае настройки нужно проверять в DCOM. Если же Excel открывается от имени пользователя, то тут проблем не должно быть. Если значение "прилетает" по формуле, то события ни в каком варианте срабатывать не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 14:58 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
iMrTidy, да вы правы при пересчете не выстреливает событие изменения, повесил на событие перед сохранением ну также в самой книге работает а при вызове через аксес нет((( ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 15:37 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
m.netda, Протестируйте, будет ли выдаваться, например, MsgBox на событие перед сохранением, только чтобы Excel был видимым. И еще, формула не обновиться, если запрещено автообновление внешних ссылок. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 15:48 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
m.netda, 1. В Tools - References подключите библиотеку Microsoft Excel xx.x Object Library, если это еще не сделано. 2. В модуле класса напишите Dim WithEvents xlApp As Excel.Application . 3. В левом выпадающем списке над кодом выберите xlApp, в правом выпадающем списке будет список событий. Выбирайте и получайте заготовку обработчика. Переменную xlApp надо связать с новым экземпляром приложения Excel с помощью New или CreateObject, или с уже запущенным приложением Код: vbnet 1.
Где это сделать - в самом классе при инициализации или в основном коде, который создаст экземпляр класса - решать Вам. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:01 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
* Set xlApp = ... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 16:13 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
ну а если дауншифтинг от обратного? вместо workbooks.open выводить msgbox "Откройте пожалуста такуюто экселину и не закрывайте", получать через getobject её объект, и дальше работать. как в том известном анекдоте про вирус, который просил пользователя format c: проделать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 17:06 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
iMrTidy, Теперь совсем интересно стало)) Событие отрабатывает MSgbox выскакивает, но интересная фигня получается коллекцию листов получаю значения ячеек изменяется, а вот запись sh.rows(10).Hidden= False не отрабатывает побывал в место скрытия строк прописать высоту тоже игнорит. Ну а просто в книге все разумеется работает(( ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 17:31 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
Казанскийm.netda, 1. В Tools - References подключите библиотеку Microsoft Excel xx.x Object Library, если это еще не сделано. 2. В модуле класса напишите Dim WithEvents xlApp As Excel.Application . 3. В левом выпадающем списке над кодом выберите xlApp, в правом выпадающем списке будет список событий. Выбирайте и получайте заготовку обработчика. Переменную xlApp надо связать с новым экземпляром приложения Excel с помощью New или CreateObject, или с уже запущенным приложением Код: vbnet 1.
Где это сделать - в самом классе при инициализации или в основном коде, который создаст экземпляр класса - решать Вам. 1 пункт сделан 2 Dim WithEvents xlApp As Excel.Application эту штуку я так понял нужно в классе указывать, это надо делать в процедуре инициализации класса? или в произвольной, 3 у меня объекты Excel.Application уже открыты как открывать их я умею а вот как забрать уже открытый? Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 17:49 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
Казанскийm.netda, 3. В левом выпадающем списке над кодом выберите xlApp, в правом выпадающем списке будет список событий. Выбирайте и получайте заготовку обработчика. [/src]Где это сделать - в самом классе при инициализации или в основном коде, который создаст экземпляр класса - решать Вам. не появляется в access эта финча, почему не понимаю если в эксель это написать в модуле эта книга то искомый список появляется ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 18:23 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
m.netda, Библиотеку подключите!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 18:43 |
|
Не отрабатывает событие в управляемой Excel
|
|||
---|---|---|---|
#18+
m.netda, сорри, не видел сообщения от 17:29 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.04.2019, 18:49 |
|
|
start [/forum/topic.php?fid=60&fpage=7&tid=2154925]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 265ms |
total: | 406ms |
0 / 0 |