A conexão de dados do Painel do Excel cai

0

Eu tenho uma configuração para exibir um status / painel de tipos, essencialmente um log que é atualizado de outro computador. Funciona via Excel, assim:

  • Alguém adiciona dados a uma tabela em "Log_Source.xlsx" que está localizado em um compartilhamento de rede e os salva.
  • O computador do painel (que é um Intel Compute Stick (Windows 10 Home) e um monitor montado na parede) tem um arquivo local, "Log_Dashboard.xlsx", com uma conexão de dados ao arquivo de origem na rede. A consulta é atualizada a cada minuto. Dessa forma, o painel pode puxar e exibir os dados, quase em tempo real, sem bloquear o arquivo para edição.

O problema:

De dias em dia, receberei uma mensagem no painel de instrumentos, a fonte de dados não foi encontrada. E não mais atualizará os dados. Fechar e reabrir o Log_Dashboard.xlsx corrige, mas como posso evitar que isso ocorra?

O que eu tentei:

  • Nas configurações de energia do Windows: Alterado para plano de alto desempenho. Configure o disco rígido para nunca desligar. Configure o Adaptador Sem Fio para Desempenho Máximo.
  • Agendou um script AutoHotKey para ser executado a cada 12 horas, apenas movendo o mouse para frente e para trás. Eu pensei que isso poderia impedir o computador de entrar em um estado de suspensão, se esse fosse o problema.
  • Adicionada uma macro ao arquivo do Excel que fecha e reabre a cada hora. Vendo como é assim que eu corrijo o problema manualmente a cada vez, achei que isso resolveria o problema, mas ainda está acontecendo.

Alguma sugestão? Ou se houver outra abordagem para configurar uma exibição de painel assim, estou aberto a isso para ... Obrigado.

    
por wysiwyg 29.09.2017 / 20:54

1 resposta

0

Publicando o que funcionou para mim apenas no caso de alguém com um problema semelhante se deparar com isso no futuro:

Nunca consegui descobrir por que a conexão de dados continuava caindo. Eu troquei o computador "dashboard" de um Intel Compute Stick conectado por Wi-Fi para um desktop compacto antigo conectado à Ethernet. Isso ajudou um pouco, mas ainda experimentei quedas de conexão de dados, junto com outros erros do Excel, como "Sem memória".

Aqui está a solução que finalmente funcionou para mim, na minha situação:

Eu inseri um módulo no arquivo do Excel ("Log_Dashboard.xlsm") com o seguinte código:

Sub WorkbookSaveCycle()

ThisWorkbook.Save
PID = Shell("cmd /k @echo off & echo Restarting Dashboard, please wait... & @echo off & timeout /t 4 /nobreak & ""C:\Program Files (x86)\Microsoft Office\root\Office16\excel.exe"" """ & Application.ActiveWorkbook.FullName & """ & exit", vbMaximizedFocus)
Application.Quit

End Sub

Isso simplesmente salva a pasta de trabalho, executa um comando shell que exibe uma mensagem que o painel está reiniciando (caso alguém esteja olhando para a tela no momento) e reabre o arquivo do Excel depois de esperar alguns segundos por para fechar. ( excel.exe filepath pode ter que ser alterado se estiver usando uma versão diferente do Office)

Depois coloco isso no módulo ThisWorkbook :

Private Sub Workbook_Open()

Application.DisplayFullScreen = True
Application.OnTime Now + TimeValue("00:15:00"), "WorkbookSaveCycle"

End Sub

Quando o arquivo do Excel é aberto, ele o define para tela cheia e, depois de aguardar o período de tempo predefinido (15 minutos aqui), chama a macro WorkbookSaveCycle acima. Que apenas define o ciclo em movimento novamente fechando e reabrindo o arquivo.

Tenho certeza de que há uma maneira melhor de fazer isso, mas tem sido praticamente estável desde a implementação dessas mudanças.

    
por 14.08.2018 / 22:26