Amigo o codigo ja esta verificando se o caminho e o nome do arquivo *.xlsm existe e tambem ja esta verificando se a Planilha (aba) "ato" está presente.
Segue o codigo com as alteracoes com um alerta caso a Planilha ato nao exista no arquivo:
Sub Teste_IP_Path_Rede()
Dim ip As String
Dim Wb As Object
Dim Ws As Worksheet
Dim winCount As Integer
Dim wsExist As Boolean
ip = "\192.168.100.4Atos OficiaisCADASTRODECRETOS.xlsm"
' verif se caminho e arquivo existem:
If VBA.Len(VBA.Dir(ip)) = 0 Then
MsgBox "Caminho / Arquivo nao existe!"
Exit Sub
End If
Set Wb = GetObject(ip)
Set Ws = Wb.Worksheets("ato")
Wb.Application.Visible = True
' verif se a planilha (aba) "ato" esiste na pasta de trabalho:
For winCount = 1 To Wb.Sheets.Count
If Wb.Sheets(winCount).Name = Ws.Name Then
wsExist = True
Wb.Windows(winCount).Visible = True
Exit For
End If
Next
If wsExist = False Then
MsgBox "A planilha(Aba) " & Ws.Name & " nao foi encontrado em: " & vbNewLine & _
ip
Else
Ws.Activate
Ws.Range("A2").Activate
' Insira um código adicional para manipular o arquivo decretos.xlsm aqui.
' ......
End If
Wb.Close SaveChanges:=True
Set Wb = Nothing
Set Ws = Nothing
End Sub
Ou se quiser transformar esta rotina em funcao:
Function Teste_IP_Path_Rede(ip As Variant, sh As String) As Boolean
Dim Wb As Object
Dim Ws As Worksheet
Dim winCount As Integer
Dim wsExist As Boolean
' verif se caminho e arquivo existem:
If VBA.Len(VBA.Dir(ip)) = 0 Then
Exit Function
End If
Set Wb = GetObject(ip)
Set Ws = Wb.Worksheets(sh)
Wb.Application.Visible = True
' verif se a planilha (aba) "ato" esiste na pasta de trabalho:
For winCount = 1 To Wb.Sheets.Count
If Wb.Sheets(winCount).Name = Ws.Name Then
wsExist = True
Wb.Windows(winCount).Visible = True
Exit For
End If
Next
' verif se aba existe no arquivo:
If wsExist = False Then
Exit Function
Else
Teste_IP_Path_Rede = True
End If
Wb.Close savechanges:=False
Set Wb = Nothing
Set Ws = Nothing
End Function
Exemplo para testar a funcao:
Sub teste_IP()
Dim sh As String, ip As Variant
ip = "\192.168.100.4Atos OficiaisCADASTRODECRETOS.xlsm"
sh = "ato"
If Teste_IP_Path_Rede(ip, sh) Then
MsgBox "Existe" & ip & " " & sh
Else
MsgBox "Não existe" & ip & " " & sh
End If
End Sub
Click em se a resposta foi util!
Postado : 01/06/2017 8:25 am