Ir para conteúdo
  • 0

RefreshAll não funciona quando executado pelo scheduler.


Fabio Graciano

Pergunta

  • Membros

Olá, procurei mas não achei algo parecido ao meu problema,

Tenho uma planilha que faz uma consulta ao nosso banco SQL Server via Power Query.

Essa atualização é feita automaticamente por uma macro ActiveWorkbook.RefreshAll quando eu abro a mesma.

Private Sub Workbook_Open()

ActiveWorkbook.RefreshAll

End Sub

Até ai tudo certo, quando eu abro a planilha a base é atualizada,

A questão é que quando eu executo essa rotina pelo scheduler não atualiza a base,

Ou seja, se eu abrir a planilha manualmente vai funcionar, mas se eu criar uma rotina pra abrir essa mesma planilha no Gerenciador de Tarefas o RefreshAll não roda.
Esse problema só ocorre Gerenciador de Tarefas do servidor, na minha máquina essa rotina funciona perfeitamente.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 1
  • Membros

Fala Fabio!

Entendi seu problema. Faz um bom tempo que nao uso macros pra isso, entretanto dei um Google rapido e econtrei um artigo que pode ajudar. Nele o autor, Chrid Webb, criou uma Query via PowerQuery chamada "GetTheDateAndTime", paxa puxar a data e hora em uma tabela com uma unica linha. Logo depois, ele roda uma macro chamada "RunPQQuery" e salvou como um arquivo .xlsm, usando o codigo abaixo, e fecha o Excel. Da uma olhada no codigo dele, talvez adaptando para sua realidade funcione:
 

Sub RunPQQuery() 
    ActiveWorkbook.Queries("GetTheDateAndTime").Refresh
End Sub

Um ponto bem relevante no artigo em relacao a macro, e que ele criou um fluxo para: (1) Abrir a macro, (2) rodar a macro e (3) fechar o Excel. Ele menciona que teve que colcar um delay de 10 segundos apos rodar a macro, para garantir que ela rodasse a carregasse os dados completamente. Antes, quando ele fechava o Excel logo depois de rodar a macro, os dados nao eram carregados e o Excel era fechado.

Artigo: https://blog.crossjoin.co.uk/2022/02/27/refreshing-excel-power-query-queries-with-vba-and-power-automate-for-desktop/

Espero que ajude e nos mantenha informado se funcionou e/ou como vc fez para funcionar : )

Forte abraco!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Olá @Renato Rossato, a planilha já salva automaticamente depois que o script é executado.

O detalhe é o seguinte, se eu entrar no servidor que está essa planilha e abri-la, a atualização vai acontecer normalmente, 

Agora, se eu colocar nas tarefas do Windows para abrir essa mesma planilha, a atualização não acontece.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
Em 20/03/2023 em 20:21, Giancarlo Solbiati disse:

Fala Fabio!

Entendi seu problema. Faz um bom tempo que nao uso macros pra isso, entretanto dei um Google rapido e econtrei um artigo que pode ajudar. Nele o autor, Chrid Webb, criou uma Query via PowerQuery chamada "GetTheDateAndTime", paxa puxar a data e hora em uma tabela com uma unica linha. Logo depois, ele roda uma macro chamada "RunPQQuery" e salvou como um arquivo .xlsm, usando o codigo abaixo, e fecha o Excel. Da uma olhada no codigo dele, talvez adaptando para sua realidade funcione:
 

Sub RunPQQuery() 
    ActiveWorkbook.Queries("GetTheDateAndTime").Refresh
End Sub

Um ponto bem relevante no artigo em relacao a macro, e que ele criou um fluxo para: (1) Abrir a macro, (2) rodar a macro e (3) fechar o Excel. Ele menciona que teve que colcar um delay de 10 segundos apos rodar a macro, para garantir que ela rodasse a carregasse os dados completamente. Antes, quando ele fechava o Excel logo depois de rodar a macro, os dados nao eram carregados e o Excel era fechado.

Artigo: https://blog.crossjoin.co.uk/2022/02/27/refreshing-excel-power-query-queries-with-vba-and-power-automate-for-desktop/

Espero que ajude e nos mantenha informado se funcionou e/ou como vc fez para funcionar : )

Forte abraco!

Fala @Giancarlo Solbiati! Blz?

Li o artigo do Chrid, é exatamente isso que eu faço, até deixo um delay de 50 segundos pra não ter problemas com a atualização da base, 

A macro que eu uso nessa planilha é só pra automatizar a atualização.

Fiz várias pesquisas também, mas não consegui identificar o motivo que não atualiza a base quando é essa rotina é feita pelo gerenciador de tarefas do Windows Server.

Mas fiz um ajuste técnico (gambiarra) para resolver o meu problema, criei um bat que abre a planilha, assim eu consigo abrir a mesma e atualizar a base dentro dela.

De qualquer forma, agradeço pela dedicação em me ajudar.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...