Página 1 de 1

FollowHyperlink_Falha em tempo de execução

Enviado: 03 Set 2020 às 10:58
por pennapfelipe
Pessoal, peço mais uma vez a ajuda de vocês na seguinte situação:

O código abaixo me retorna o arquivo .pdf seguindo as informações de uma range

ActiveWorkbook.FollowHyperlink ("C:\Users\xxxx\Desktop\Respositorio\Recibos e PreNFS\" & Sheets("C_Vinculo").Range("z41").Value & ".pdf")

Entretanto, em alguns casos o arquivo .pdf não existe (ainda nao foi criado).

Desta forma, tenho seguinte retorno: "Erro em tempo de execução '-2147024894 (800700002)"

Existe uma forma para que eu "trate" esse erro, sem que o usuário receba essa mensagem?

Re: FollowHyperlink_Falha em tempo de execução

Enviado: 03 Set 2020 às 15:27
por babdallas
Crie esta função:
Código: Selecionar todos
Private Function bolVerificaArquivo(ByVal strArq As String) As Boolean
    'Identifica se o arquivo existe
    bolVerificaArquivo = (Dir(strArq) <> vbNullString)
End Function
Depois segue um exemplo de tratamento:
Código: Selecionar todos
 Public Sub Teste
         Dim strArquivo         as string
         
         'Nome do arquivo
         strArquivo = "C:\Users\xxxx\Desktop\Respositorio\Recibos e PreNFS\" & Sheets("C_Vinculo").Range("z41").Value & ".pdf"
      
        'Verifica se o arquivo já existe no caminho de destino.
        If Not bolVerificaArquivo(strArq:=strArquivo) Then
            'Executa os códigos se existir o arquivo
        Else
             'Executa os códigos se não existir o arquivo
        End If
End Sub

Re: FollowHyperlink_Falha em tempo de execução

Enviado: 03 Set 2020 às 15:49
por mucascosta
Código: Selecionar todos
Sub AbrePDF()
On Error GoTo ErrorHandler
    ActiveWorkbook.FollowHyperlink ("C:\Users\xxxx\Desktop\Respositorio\Recibos e PreNFS\" & Sheets("C_Vinculo").Range("z41").Value & ".pdf")
ErrorHandler:
    MsgBox "O arquivo.pdf não existe"
    Exit Sub
End Sub

Re: FollowHyperlink_Falha em tempo de execução

Enviado: 04 Set 2020 às 08:48
por pennapfelipe
Obrigado babdallas e mucascosta.
As duas soluções funcionaram no meu caso.