Страницы: 1
RSS
Запуск макроса после завершения фонового обновления
 
Добрый день!

Подскажите пжлст можно ли повесить запуск макроса на завершение фонового обновления подключений?
В книгу собираются данные в таблицу, с помощью инструмента Power Query, обновляются при открытии книги, и вот мне именно по факту выполнения обновления данных нужно запускать макрос.

Спасибо!
 
Доброе время суток.
Вариант, если результат запросов Power Query вывод таблиц на рабочие листы книги.
 
Добрый день, Андрей! Спасибо за интересный пример!
Владимир
 
еще вариант
 
Добрый вечер, Владимир.
Да не за что. Это же только так - примитивный каркас. Плюс, OleDbConnection и ODBCConnection поддерживают флаг Refreshing - следовательно можно просто в цикле организовать опрос состояния и выходить из цикла, когда уже все обновляемые соединения обновились. Может этот подход и был бы проще ТСу для понимания. А то вон мимо бегает и ни гу, гу. Застенчивые пошли :)
 
Добрый день!

Прошу прощения, что задал вопрос и пропал. Уезжал, не было компьютера под рукой.

Андрей, сейчас попробовал предложенный Вами вариант - как общая идея запуска макроса все работает огромное спасибо! Но у меня остался возможно глупый вопрос.  
После обновления таблицы я хочу применить форматирование к столбцу кодом
Код
Public Sub Format_N()
With Worksheets("Data")
    .Range("J:J").NumberFormat = "+7"" ""(000)"" ""000""-""00""-""00"
End With
End Sub
Данный макрос выполняется после сообщения, и вроде все должно быть хорошо, но далее таблица продолжает обновлять формат и конкретно код форматирования не работает.
Возможно я что-то банальное в этой истории не понимаю... (а может у меня глюк?)

Прикладываю пример, в нем видно как именно собираю и что происходит.
Прошу, взгляните, пжлст, что идет не так?
 
Цитата
hr.al написал:
После обновления таблицы я хочу применить форматирование к столбцу кодом
А смысл так стрелять из пушки по воробьям? Не проще один раз отформатировать и отключить в свойствах подключения автоформат данных, плюс, включить сохранять сведения о сортировке/фильтре/формате для столбца?
 
 Именно так и выставлены настройки, но... формат все равно слетает...  
 
hr.al, можно сделать еще кое-что страшное,

но тут есть нюанс, если таблица увеличивается в размерах, то у УФ расширяется диапазон автоматически (по крайней мере у меня так), а вот если таблица уменьшается, то УФ будет действовать на ячейки вне таблицы.
Вот горшок пустой, он предмет простой...
 
PooHkrd, спасибо! Но УФ не очень хочется использовать.

Что же все таки происходит с таблицей?
Почему она после фактического обновления (и вызова макроса, по схеме предложенной выше) продолжает изменять формат, несмотря на запрет изменения в настройках?
 
Вот с такими настройками при обновлении формат не слетает.
Вот горшок пустой, он предмет простой...
 
PooHkrd, все гениальное просто )) действительно работает. Я почему-то думал, что "автоформат данных" наоборот все сбрасывает. Спасибо!
 
Но есть еще один вопрос, в целом в тему:

После полного обновления данных, когда таблица "успокоилась" )) и больше ничего не происходит, книга переключается на лист как раз с этой таблицей.
Этого можно как-то избежать?
Как и в предыдущем вопросе, даже если повесить активацию нужного листа на событие завершения обновления, лист активируется, но потом происходит что-то (так и не понимаю, что происходит после завершения обновления) и снова открывается лист с таблицей (при чем в это случае еще и криво - лист на лист как бы накладывается)

Вот это кстати очень важный вопрос для меня, так как есть книга в которой лист с таблицей скрыт и там вообще ужас происходит - как будто все зависло, а на самом деле excel просто пытался переключиться на скрытый лист, но ему это не удалось.

В итоге пользователь думает, что ничего не работает и не догадывается кликнуть на ярлык открытого листа для его активации.

Пжлст, помогите!
 
Цитата
hr.al написал:
Этого можно как-то избежать?
на сколько мне известно нет. Но ведь никто же не мешает отслеживать начало обновления запроса и при этом сохранить текущее положение пользователя, а после завершения обновления начать с того, что вернуть юзера к сохраненному состоянию.
Вот горшок пустой, он предмет простой...
 
Эм... я не знаю как это реализовать (( вы не могли бы помочь?  
 
hr.al, VBA не моя стихия, увы. Или ждите пока кто-нибудь еще заглянет, или создайте новую тему.
Вот горшок пустой, он предмет простой...
 
PooHkrd, понял, в любом случае, спасибо!

Андрей VG, хочу обратиться к Вам, если позволите. Вы могли бы подсказать решение этой проблемы?  
Изменено: hr.al - 03.07.2019 13:31:38
Страницы: 1
Наверх