Notifications
Clear all

Verificar conexão na rede

5 Posts
3 Usuários
0 Reactions
809 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tenho uma macro que salva na rede três planilhas de um arquivo em PDF.
A macro trava ou dá erro quando a rede está ruim ou caiu, precisando utilizar a tecla ESC.
Como verificar antes se a rede está ativa e operacional?

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 21/04/2018 3:13 pm
(@srobles)
Posts: 231
Estimable Member
 

Paulo,

Se houverem unidades mapeadas em seu computador, experimente o que segue abaixo:

If Dir (Z:) = "" Then
  Exit Sub
Else
   'Código á executar
End If

Espero que te ajude.

Abs

Espero ter ajudado.

Abs.

Saulo Robles

 
Postado : 21/04/2018 7:47 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Se realmente seu código gera algum erro, tente:

Sub seu_codigo()
On Error GoTo Trataerro
Seu código aqui...
Exit sub
Trataerro:
MsgBox "Por favor, verifique as conexões de rede!", vbExclamation, "Erro!"
End Sub

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 22/04/2018 6:43 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Obrigado a ambos.
Realmente, se a rede está mapeada como unidades, logicamente não achando é porque a rede está inativa ou o caminho não existe.
Uso On Error Resume Next uma linha antes do salvamento em PDF, e logo após If Err.Number > 0
Dim CaminhoArq As String
Dim NomeArq As String
CaminhoArq = ActiveSheet.Range("F2").Value
NomeArq = ActiveSheet.Range("F4").Value
If Right(CaminhoArq, 1) <> "" Then CaminhoArq = CaminhoArq & ""
On Error Resume Next
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:=CaminhoArq & NomeArq & ".pdf", _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
If Err.Number > 0 Then
MsgBox "Caminho da pasta não existe!", vbExclamation, "AAAAA"
Exit Sub
End If
Não existindo o caminho a mensagem de erro é imediata.
Mas existindo o caminho e a rede estando inativa ou fraca, era para dar erro imediato e cair no IF Err.Number, mas o Excel trava e não responde, somente teclando ESC se consegue parar a macro.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/04/2018 12:24 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Um código que achei na Internet, que gostaria de saber se funciona tanto para rede como para internet.
E continua o código somente se a rede estiver boa: estando ruim ou com algum problema ou inativa, para o código.

Private Declare PtrSafe Function InternetGetConnectedStateEx Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal lpszConnectionName As String, ByVal dwNameLen As Integer, ByVal dwReserved As Long) As Long

Public Function IsInternetConnected() As Boolean
IsInternetConnected = InternetGetConnectedStateEx(0, "", 254, 0)
End Function

Sub TestandoConexão()
If IsInternetConnected = True Then
MsgBox "Continua o código"
Else
MsgBox "Código interrompido"
End If
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 22/04/2018 12:43 pm