Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
Avatar do usuário
Por JCabral
Avatar
#33102
Boa tarde

Tenho uma duvida sobre como funciona o Update de uma tabela que vai buscar valores externos através do Microsoft Query, então é assim:

- Existe algures um ficheiro de dados ao qual eu vou buscar para a minha planilha só os dados que me interessam, via Microsoft Query;
- Tenho a atualização de dados ao abrir a minha planilha ligada;

Depois dos dados atualizados preciso de fazer várias operações sobre os dados que importei, mas só depois dos dados estarem atualizados e aqui surge a minha duvida, que é, se eu colocar em Sub Workbook_Open as instruções sobre as operações que eu quero efetuar sobre os dados da minha tabela, essas instruções são executadas antes ou depois dos dados estarem atualizados?

Se forem executadas antes dos meus dados serem atualizados como posso fazer para as instruções só serem realizadas depois dos dados estarem atualizados e de forma automática ou seja sem eu carregar em nenhum botão?

Espero ter sido claro na minha duvida.

Obrigado
Jorge Cabral
#33111
Tente usar no evento Open do Workbook
Código: Selecionar todos
ThisWorkbook.RefreshAll
Avatar do usuário
Por JCabral
Avatar
#33127
Babdallas

Mas a minha duvida mantem-se, ou seja, as instruções que estão no evento Open do Workbook são executadas antes ou depois das tabelas serem atualizadas com os dados externos?

Obrigado
#33131
Dentro do evento Open da planilha, você inicia o código atualizando as querys e depois executa seu código. Teoricamente isso deve resolver. Depois vou realizar alguns testes para tentar te dizer se isso é realmente necessário ou não.
Código: Selecionar todos
ThisWorkbook.RefreshAll
'Coloque o restante do código
Avatar do usuário
Por JCabral
Avatar
#33132
Eu percebi a sua solução, ou seja em vez da atualização das querys ser feita automaticamente, eu faço isso com código, ThisWorkbook.RefreshAll , e depois coloco o meu código para fazer as operações nas tabelas atualizadas.

Depois me retorne suas conclusões sobre se posso manter essa atualização automática ou se tenho que fazer com código.

Obrigado
#33502
Acabei de testar.

O evento Open roda primeiro do que a atualização da Query. Puxei dados via PowerQuery de uma tabela de uma outra pasta de trabalho do Excel, adicionei ao modelo de dados e solicitei que a conexão fosse atualizada ao abrir o arquivo. Coloquei no evento Open do Workbook para mostrar uma mensagem com o primeiro valor dos dados que havia puxado pelo PowerQuery. Depois fechei o arquivo.
Abri a pasta de trabalho com os dados de origem, modifiquei o primeiro dado, salvei e fechei.
Abri novamente a pasta de trabalho com a consulta e o código no evento Open. Ao abrir, mostrou o valor antigo (ativado no evento Open) e só depois disso a Query foi atualizada com o valor novo.
Se realizei o teste de forma correta, concluo que o evento Open é verificado antes de qualquer atualização de Query.
Avatar do usuário
Por JCabral
Avatar
#33505
Obrigado Babdallas

Donde podemos concluir que o melhor é desactivar a atualização automática das tabelas e faze-lo através da instrução que indicaste mais acima e só depois fazer cálculos e operações sobre os dados, certo?

Ou existe maneira de sabermos quando é que os dados já estão atualizados e depois fazermos as operações que precisamos? O que seria o ideal.
#33513
Caso tenha código no evento Open do Workbook, então eu faria primeiro a atualização das Querys via evento Open para depois executar meu código.
Caso o código não esteja no evento Open, aí você pode colocar a atualização automática das Querys ao abrir o arquivo.

Não sei se há uma maneira se saber se uma query foi atualizada ou não. Teria que pesquisar.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord