Notifications
Clear all

Sincronizar workbook remotamente (via web)

6 Posts
3 Usuários
0 Reactions
1,754 Visualizações
(@gamboaisrael)
Posts: 68
Trusted Member
Topic starter
 

Bom dia, pessoal.

Estou com uma dúvida para um projeto que venho desenvolvendo.

A questão é a seguinte: Desenvolvi uma consulta (via vba e sql) a uma base de dados presente em uma pasta de trabalho do excel (com 20 planilhas). Essa pasta de trabalho será distribuida para vários usuários Brasil a fora. O problema é que sempre que necessário (ao menos 1 vez por mês, mas sem uma periodicidade definida) precisarei atualizar a base de dados presente nas planilhas da pasta de trabalho. Desse ponto vem meu questionamento:

É possível sincronizar a pasta de trabalho nos usuários com a minha pasta de trabalho se ela estiver disponível na web?
É possível esta sincronização ocorra sempre que houverem dados "novos" disponíveis na pasta de trabalho "mãe" disponível na web?
Como fazer isso?

Gostaria que somentes as informações novas, recém adicionadas, fossem copiadas para o "final" de cada planilha na pasta de trabalho do usuário, para evitar tempo copiando todos os dados.

Reenviar a pasta de trabalho para os mesmos toda vez que ela for atualizada fica inviável, haja visto que atualmente ela pesa 82MB e a internet na grande maioria dos usuários é horrível.

Desde já, agradeço a atenção e ajuda!

gamboaisrael .'.

 
Postado : 13/11/2012 8:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
(@gamboaisrael)
Posts: 68
Trusted Member
Topic starter
 

Obrigado, alexandrevba.

As dicas foram boas, sobretudo do site macoratti.

Adaptei, em testes, um código encontrado aqui: http://www.macoratti.net/excel_vb.htm e funcionou. Porém, quando o volume de dados copiado de uma planilha para a outra é um pouco grande (Quando maior que 200 linhas, por exemplo) o excel fica processando sem parar e, quando forço o fechamento, dá um erro dizendo que esta esperando o encerramento da OLE.

Depurando o código linha a linha, posso perceber que ele trava (fica processando sem parar) quando chega na linha

xlw.Close False

que pretende fechar a planilha remota sem salvar a mesma.

O código que eu adptei é o seguinte:

Public Sub Teste()
Dim xl As New Excel.Application
Dim xlw As Excel.Workbook
Dim UltLocal As String
Dim UltRem As String
Dim UltlinLocal As String
Dim linLocal As Integer
Dim colLocal As Integer
Dim linRem As Integer
Dim colRem As Integer

'Localizar ultima celula preenchida na planilha local
Cells(1, 1).Select
ActiveCell.SpecialCells(xlLastCell).Select
linLocal = ActiveCell.Cells.Row
colLocal = ActiveCell.Cells.Column
UltLocal = ActiveCell.Address(, , xlA1)


 'Abrir o arquivo remoto do Excel
Set xlw = xl.Workbooks.Open("http://osite.com.br/planilhamae.xls")

'Definir a planilha de trabalho
xlw.Sheets("Plan1").Select

'Localizar ultima celula preenchida na planilha remota
xlw.Application.Cells(1, 1).Select
xlw.Application.ActiveCell.End(xlDown).Select
linRem = xlw.Application.ActiveCell.Cells.Row
colRem = xlw.Application.ActiveCell.Cells.Column

'Comparando os dados pelo localizacao da ultima celula preenchida
If linLocal & "," & colLocal < linRem & "," & colRem Then

'Caso haja diferença, selecionar e copiar os dados da planilha remota
xlw.Application.Range("A" & (linLocal + 1), xlw.Application.Range(UltLocal).End(xlDown)).Select
xlw.Application.Selection.Copy

'Colando os dados "novos" na planilha local
Application.Range("A" & (linLocal + 1)).PasteSpecial (xlPasteValues)

Else
MsgBox ("Lascou")
End If

' Fechar a planilha sem salvar alterações
xlw.Close False

' Liberando a memória
Set xlw = Nothing
Set xl = Nothing
End Sub

Alguem poderia me ajudar nesse ponto? Qual será o motivo do travamento? Quando diminuo a quantidade de dados a ser copiados funciona bem. Assim como quando comento a linha de fechar a planilha acontece um fato interessante: o volume de dados para travar passa a ser maior (nos testes travou depois de 300 linhas, hehehe).

Agradeço a atenção e a ajuda!

Saudações,

 
Postado : 13/11/2012 2:09 pm
(@hronconi)
Posts: 314
Reputable Member
 

Gamboaisrael,

Sei que sua necessidade é imediata, mas já testei o Office 2013 e vem muita coisa boa neste sentido.

Haverá possibilidade de você gravar os seus arquivos em uma nuvem (na base da Microsoft) e você determinará para quem estes arquivos serão compartilhados. Assim você irá manter apenas um arquivo e não precisará copiar para ninguém, pois as alterações passarão a valer em tempo real (online).

Estou esperando ansiosamente para o lançamento, mas acho que até março/abril estarão liberando a versão oficial.

Abraço,

Henrique.

 
Postado : 13/11/2012 2:39 pm
(@gamboaisrael)
Posts: 68
Trusted Member
Topic starter
 

Bom dia, Henrique.

Notícias animadoras! Estou ancioso pra testar essa nova versão.

Abraço,

 
Postado : 14/11/2012 5:13 am
(@gamboaisrael)
Posts: 68
Trusted Member
Topic starter
 

up

 
Postado : 16/11/2012 12:31 pm