Ir ao conteúdo
  • Cadastre-se

Problema com conexão em um servidor FTP


filipegomes18

Posts recomendados

Boa tarde a todos!

Vamos lá: tenho uma planilha X que tem um vínculo com uma planilha Y em um servidor FTP. Para acessar esta planilha Y no servidor FTP, as fórmulas que estão na planilha X usam um usuário e senha.

Ate aí tudo bem. Meu problema é quando a planilha X é aberta em um computador que não esteja conectado na internet. Quando a planilha X é aberta, ela atualiza os links com a planilha Y e retorna dizendo que não pode ser aberto e mostra descaradamente o endereço do servidor FTP, o usuário e a senha, tudo o que eu não quero mostrar...

Então pensei em duas soluções:

- Criar uma macro que analíse a conexão com a internet antes de abrir a planilha X. Se não existir conexão, então a planilha é fechada.

- Criar uma macro que analisasse o link para a planilha Y antes de abrir a planilha X. Se estiver indisponível, a planilha é fechada.

Procurei em todo lugar e não encontrei nada... Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

Oi, filipegomes18,

Talvez a solução abaixo não seja a ideal, mas realiza o que você precisa.

Private Sub Workbook_Open()

On Error Resume Next

Workbooks.Open "http://www.google.com.br/"

If Err = 0 Then

ActiveWorkbook.Close

Else

MsgBox "Você deve estar conectado à internet para abrir esta planilha."

Me.Close

End If

End Sub

Uma discussão no Stack Overflow contém diversas outras maneiras para verificar a conexão com a internet - http://stackoverflow.com/questions/551613/check-for-active-internet-connection.

Link para o comentário
Compartilhar em outros sites

Oi, filipegomes18,

Talvez a solução abaixo não seja a ideal, mas realiza o que você precisa.

Private Sub Workbook_Open()

On Error Resume Next

Workbooks.Open "http://www.google.com.br/"

If Err = 0 Then

ActiveWorkbook.Close

Else

MsgBox "Você deve estar conectado à internet para abrir esta planilha."

Me.Close

End If

End Sub

Uma discussão no Stack Overflow contém diversas outras maneiras para verificar a conexão com a internet - http://stackoverflow.com/questions/551613/check-for-active-internet-connection.

Oi vinibpeixoto!

Obrigado pela resposta! A solução até funciona, mas o Excel faz primeiro a procura dos vínculos para depois executar o Workbook_Open...

Procurei muita coisa na internet e realmente não encontrei nada... Vou tentar ser mais prático na minha pergunta. Toda vez que abro minha planilha em um computador sem internet, aparece o seguinte erro:

130725013320428313.jpg

Preciso sumir com esse aviso! Só que eu não posso desabilitar os vínculos automáticos, pois o usuário da planilha não poderá atualizar o vinculo. E testei application.displayalerts = false e não funciona.

Alguém tem alguma sugestão?

Link para o comentário
Compartilhar em outros sites

Filipegomes18,

Você poderia, inicialmente, desabilitar os vínculos automáticos, para evitar a exibição do alerta, e habilitar a opção em runtime, após a verificação da conexão.

Para isso, as propriedades UpdateLinks e UpdateRemoteReferences do Workbook deveriam ser pré-definidas conforme abaixo.

- UpdateLinks: 2 - xlUpdateLinksNever

- UpdateRemoteReferences: False


Private Sub Workbook_Open()
On Error Resume Next
Workbooks.Open "http://www.google.com.br/"
If Err = 0 Then
ActiveWorkbook.Close
Me.UpdateLinks = xlUpdateLinksAlways
Me.UpdateRemoteReferences = True
Me.RefreshAll
Me.UpdateLink "C:\Exemplo.xlsx", xlExcelLinks
Else
MsgBox "Você deve estar conectado à internet para abrir esta planilha."
Me.Close
End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Me.UpdateLinks = xlUpdateLinksNever
Me.UpdateRemoteReferences = False
End Sub

Link para o comentário
Compartilhar em outros sites

Boa tarde vinibpeixoto!

Funcionou! Mas tive que fazer algumas adaptações:

Private Sub Workbook_Open()

On Error Resume Next

Application.ScreenUpdating = False

Workbooks.Open "ftp://servidorftp/"

' Aqui eu coloquei o link do servidor ftp, pois caso tenha internet e o servidor esteja off, a planilha não é atualizada

If Err = 0 Then

ActiveWorkbook.Close

Me.UpdateLinks = xlUpdateLinksAlways

Me.UpdateRemoteReferences = True

Me.RefreshAll

Sheets("CONFIG1").Unprotect ("123456")

ActiveWorkbook.UpdateLink Name:= _

"ftp://servidorftp/planilha1.xls", Type _

:=xlExcelLinks

ActiveWorkbook.UpdateLink Name:= _

"ftp://servidorftp/planilha2.xls", Type:= _

xlExcelLinks

Sheets("CONFIG1").Protect ("123456")

' Os links não atualizam quando a planilha está protegida.

Application.ScreenUpdating = True

Call Macro1

Else

MsgBox "Você deve estar conectado à internet para atualizar os dados desta planilha!"

Call Macro2

End If

End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)

Me.UpdateLinks = xlUpdateLinksNever

Me.UpdateRemoteReferences = False

End Sub

' Quando a planilha era salva, os vínculos ficavam disponíveis a mensagem surgia quando o servidor ou a internet estivesse off. Tive que acrescentar mais esse:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Me.UpdateLinks = xlUpdateLinksNever

Me.UpdateRemoteReferences = False

End Sub

Além disso, tirei o Me.Close pois o usuário pode editar a planilha mesmo estando off, só não poderia atualizá-la.

Acho que é isso. Muito obrigado pela ajuda!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!