Notifications
Clear all

Visualizar Planilha em outro PC em tempo Real

2 Posts
2 Usuários
0 Reactions
896 Visualizações
(@db2014)
Posts: 1
New Member
Topic starter
 

Pessoal, bom dia.
Meu nome é Danilo, sou novo aqui, nunca postei, mas sempre olhei/procurei ajuda nos tópicos, e sempre me foram de grande valia.
Contudo, estou com um problema que não consegui achar solução. Gostaria de saber se alguém pode me ajudar.
Tenho duas planilhas, a "Broad" e a "Macros", e estou em rede com outros pcs.
Essa planilha "Broadcast" está em uma pasta na rede, e eu a abro no pc1, onde atualiza diversos tickers de cotação constantemente linkada a um programa.
A planilha "Macro" é uma "Cópia da Broad" (='I:DIPlanilhas GestãoGerenciais[Broadcast.xlsm]broad'!E5), para que assim eu possa abrir ela em outro pc e continuar vendo os valores. ( Não consigo abrir o programa de cotação no outro pc ).
Contudo, quando a "Broadcast" atualiza, a "Macros" não atualiza automaticamente, assim preciso ficar salvando a "Broadcast" e atualizando a "Macros". Dessa forma, fiz duas macros com timers para as duas. No entanto, ao rodar, elas rodam durante um tempo e depois dão o erro 1004. O grande problema que eu vejo é que quando coincide a atualização com o salvamento, a macro dá pau e paralisa tudo.
Pensei em linkar com o onedrive ou com o googledrive, mas nenhum deles consegue puxar a "broadcast" em tempo real. Somente subindo o arquivo toda hora.
Gostaria de saber se alguém consegue me ajudar. Preciso visualizar a planilha "Broadcast" em tempo real em outro pc.
Segue abaixo as macros que fiz nas planilhas.

Plan MACROS:

"Public RunWhen1 As Double
Public Const cRunIntervalSecondss = 1
Public Const cRunWhat1 = "Atualizacao"

Sub Atualizacao()

ActiveWorkbook.UpdateLink Name:= _
"I:DIPlanilhas GestãoGerenciaisBroadcast.xslx", Type:=xlExcelLinks

StartTimer1
End Sub

Sub StopTimer1()
On Error Resume Next
Application.OnTime EarliestTime:=RunWhen1, Procedure:=cRunWhat1, _
Schedule:=False
End Sub

Sub StartTimer1()
RunWhen1 = Now + TimeSerial(0, 0, cRunIntervalSecondss)
Application.OnTime EarliestTime:=RunWhen1, Procedure:=cRunWhat1, _
Schedule:=True

End Sub"

Plan BROADCAST

"Public RunWhen As Double
Public Const cRunIntervalSeconds = 1
Public Const cRunWhat = "Salvamento"

Sub Salvamento()
Application.ScreenUpdating = False
Calculate
If Application.ThisWorkbook.Saved = False Then
Application.ThisWorkbook.Save
End If
StartTimer
Application.ScreenUpdating = True

End Sub

Sub StopTimer()

On Error Resume Next
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
Schedule:=False
End Sub

Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
Schedule:=True

End Sub
"
Obrigado pela ajuda.

Abss

 
Postado : 04/11/2014 7:44 am
Reinaldo
(@rlm)
Posts: 246
Estimable Member
 

O Excel, mesmo sendo uma ferramenta poderosa, não trabalha muito bem com uso em rede. Apesar da função "Compartilhamento", ao ser utilizada por mais de um usuário, vários problemas são encontrados/relatados.
Também a utilização de um espelho da mesma; incorre em problemas como o relatado. E necessário "ficar" atualizando de tempo em tempo. A muito tempo atras, tivemos uma aplicação assim, que fomos obrigados a migrar para um banco de dados (Access e depois SqlQuery/Web).
Uma alternativa, não sei se funcional, pois nunca a utilizei/testei para essa finalidade, e ter uma planilha com uma query (Menu -->Dados --> Importar Dados Externos --> Consulta à banco de dados.
Nessa query, você pode "trazer" os dados relevante ou todos, e deixa-la com update automático.

Reinaldo

 
Postado : 04/11/2014 9:31 am