Notifications
Clear all

Macro executa após query atualizar

5 Posts
3 Usuários
0 Reactions
2,556 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Galera,
Estou com um problema e não sei como resolver da forma correta. Tenho um excel vinculado com uma base com algumas consultas que preciso montar um relatório. Minha rotina já está pronta, porém só posso dar andamento na minha rotina da macro após o query "Refresh all" terminar.

Posso colocar um wait ou um ontime, porém não são todas as consultas que demoram para atualizar, em alguns casos é instantânea a atualização que se eu colocar um wait, vou perder tempo e tenho outras que demoram mais, ai não consigo prever o tanto de tempo que preciso aguardar até executar o restante da macro.

alguém já teve esse tipo de problema?? alguma solução prática?

Já procurei algumas coisas no google mas nada que funcionasse.!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/08/2015 5:19 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Já tentou usar:

ActiveWorkbook.RefreshAll
Application.CalculateUntilAsyncQueriesDone

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 20/08/2015 11:26 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Cara tentei não funcionou...mas achei uma solução EASY!! que nem sabia que tinha.

Existe uma propriedade em conexões que chama "Habilitar atualização em segundo plano" assim o excel só prossegue com qualquer evento assim que a consulta for concluída.

Resolveu o problema..

valeu pela ajuda amigo!

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 20/08/2015 12:25 pm
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

;)

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 20/08/2015 12:27 pm
(@amusto)
Posts: 1
New Member
 

Tinha o mesmo problema aqui e sua resposta me ajudou bastante.
Para que o código VBA aguarde a conclusão da consulta antes de prosseguir: setar a propriedade BackgroundQuery = False
Muito obrigado pela ajuda e espero ter contribuído um pouco mais. Abraços.

 
Postado : 13/02/2017 8:24 pm