Recarregue a planilha no Excel 2010

0

Temos uma planilha em uma unidade compartilhada que uma pessoa atualiza e o restante apenas lê. Eu tinha certeza de que, quando usamos o Excel 2003, se o autor atualizou a planilha, o Excel notificaria o usuário e recarregaria. O Excel 2010 não parece estar fazendo isso, pelo menos não de forma automática, então o autor envia um e-mail informando sobre as alterações e, em seguida, preciso fechar o arquivo e reabri-lo. Existe um botão em algum lugar que apenas irá recarregar o arquivo em um único clique, ou melhor ainda, detectar automaticamente as alterações e exibi-las (o arquivo está bloqueado para mim, só posso lê-lo, portanto não estou preocupado em perder alterações)?

    
por FrustratedWithFormsDesigner 13.06.2014 / 18:07

1 resposta

1

Acho que isso pode depender do armazenamento de arquivo compartilhado que você está usando.

Certamente 2010 faz o que você sugeriu que aconteceu em 2003. Se uma pessoa tiver o arquivo aberto, a segunda é informada de que está aberta e é oferecida como somente leitura. Eles também devem ser oferecidos para que sejam notificados quando o usuário original fechar o arquivo. Quando isso acontece, o Excel oferece para recarregar o arquivo no modo de leitura / gravação.

No entanto, nem sempre funciona. Muitas vezes eu vi isso não fazer algumas ou algumas dessas coisas e que está em um compartilhamento de rede do Windows. Usar versões mais antigas do servidor Windows ou servidores SAMBA do Linux pode ter mais impacto. Ter uma rede lenta ou não confiável certamente causará impacto. Você também pode descobrir que a fechadura nunca é liberada, também vemos isso muito.

Eu não sei de uma resposta simples para a sua pergunta, eu tenho medo. Além de fazer alguma programação inteligente para monitorar as mudanças de data de arquivo e lançar um diálogo de aviso. Acho que isso poderia ser feito com um arquivo PERSONAL.XLSM e macros apropriadas.

ATUALIZAÇÃO:

Da pergunta sobre estouro de pilha: excel vba para reabrir o arquivo excel sem salvar .

Sub ReOpen()
    Application.DisplayAlerts = False
    Workbooks.Open ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
    Application.DisplayAlerts = True
End Sub

Você pode colocar isso em uma pasta de trabalho macro pessoal, atribuí-la a um atalho e / ou a uma entrada de faixa personalizada. Pelo menos, isso permite que você recarregue manualmente.

Application.OnTime

permite que você execute algum código após um período definido. Veja Estilo VBA Macro On Timer para executar o código a cada número definido de segundos, ou seja, 120 segundos para obter mais detalhes. Defina um cronômetro quando você carregar a pasta de trabalho e ela será recarregada a cada x segundos.

    
por 13.06.2014 / 20:02