Notifications
Clear all

Apresentar Mensagem ao invés de ERRO.

5 Posts
3 Usuários
0 Reactions
797 Visualizações
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Bom dia.

Tenho o seguinte código.

    ChDir "C:relato"
    Workbooks.OpenText Filename:="C:relatofinr150u-2356-40-2015-ant.##r", _
        Origin:=xlWindows, StartRow:=1, DataType:=xlFixedWidth, FieldInfo:= _
        Array(0, 1), TrailingMinusNumbers:=True
    Range("A1:A1000").Select
    Selection.Copy
    Windows("2140117.118.119 - Conciliação - CSLL.COFINS.PIS Retidos a Pagar").Activate
    Range("E10").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Windows("finr150u-2356-40-2015-ant.##r").Activate
    ActiveWindow.Close

Ele abre um txt e cola na planilha que estou usando.

Quando ocorrer do excel não localizar o arquivo na pasta C:relato, como faço para aparecer uma mensagem para não dar erro no VBA ?

Exemplo:

MsgBox "O arquivo da Macro XXX não foi gerado pelo sistema."

Obrigado!

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 09/10/2015 7:32 am
(@nelson-s)
Posts: 96
Trusted Member
 

Você pode testar antes se o arquivo existe ou não no local especificado.
Se não existir, talvez abrir uma caixa de diálogo para dar a opção de selecionar o arquivo.

Somente emitir a mensagem de que "O arquivo da Macro XXX não foi gerado pelo sistema." não vai te informar se o processamento foi interrompido pelo fato do arquivo não ter sido localizado, pois poderá ter havido algum outro erro.

Se você quer saber se a causa foi a não localização do arquivo, teria que informar isso na mensagem também.

Algo do tipo "Processamento interrompido. Arquivo YYYY não localizado em C:..."

 
Postado : 09/10/2015 8:05 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Seguindo a dica do Nelson, o ideal é fazer a verificação primeiro se o caminho e o arquivo existem e depois continuar, veja se consegue ajustar a rotina abaixo, apesar que seria só acrescentar o que quer fazer apos a confirmação de que o arquivo existe :

Private Sub VerificaArquivo()
        Dim FileName As String, Path As String, meuArqu

        Path = "C:relato"
        meuArqu = "finr150u-2356-40-2015-ant.##r"
       
       'VERIFICA SE O CAMINHO EXISTE
        If Not Dir(Path, vbDirectory) = vbNullString Then
             'SE EXISTIR
             'adiciona a barra, se não houver
             If Right(Path, 1) <> "" Then Path = Path & ""
                'monta o caminho completo do arquivo
                FileName = Dir(Path & meuArqu)

            Else

                MsgBox "O CAMINHO :" & Chr(13) & Path & Chr(13) & "NÃO EXISTE"
                Exit Sub
        End If
         
        'VERIFICA SE O ARQUIVO EXISTE
        If FileName = meuArqu Then
           'SE EXISTIR, Coloque aqui sua chamada para abrir o arquivo
            MsgBox "Arquivo encontrado, coloque sua rotina para continuar aqui"
            
           Exit Sub
        Else
                MsgBox "O Arquivo:" & Chr(13) & meuArqu & Chr(13) & "NÃO existe !!!"
        End If
           
    End Sub

[]s

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

 
Postado : 09/10/2015 12:08 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Obrigado vou testar.

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 09/10/2015 12:44 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Mauro Obrigado por postar o código, funcionou da maneira que eu queria.

Obrigado também Nelson.

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 13/10/2015 5:10 am