MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Editar arquivo .txt através do VBA

    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Editar arquivo .txt através do VBA

    Mensagem  Convidado 22/8/2013, 20:43

    Tenho um arquivo texto com as informações dispostas sequencialmente sem quebra de linha:

    "1534003000016897";"20130701";"224781";"PAG BOLETO";"21.00";"D""1534003000016897";"20130701";"227389";"PAG BOLETO";"63.87";"C"


    Pergunto.. Há como realizar o loop pelo arquivo adicionando uma quebra de linha após a Letra D" ou C"?

    "1534003000016897";"20130701";"224781";"PAG BOLETO";"21.00";"D"
    "1534003000016897";"20130701";"227389";"PAG BOLETO";"63.87";"C"


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 22/8/2013, 21:03

    Notei que ao abrir no word e salvar como txt(rtf) ele fica com as quebras de linha no devido lugar..

    Caso haja uma solução para abrí-lo no Word e salvar como txt.. Serviria também.

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 22/8/2013, 21:25

    Para converter txt em doc

    Set oWord = CreateObject("Word.Application")
           
            Set oDoc = oWord.Documents.Open(CurrentProject.Path & "\Publicacao\importar\" & StrArquivo)
            oDoc.SaveAs CurrentProject.Path & "\Publicacao\importar\" & Left(StrArquivo, Len(StrArquivo) - 4) & ".docx", _
                wdFormatXMLDocument

    Ideias para importar o texto do .docx são bem vindas.. ou reconverter em txt


    Cumprimentos.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Alexandre Neves 22/8/2013, 21:28

    Olá Piloto
    Estou a trabalhar para o ajudar
    Abraço,


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 22/8/2013, 21:59

    Consegui converter para Word.. Ficou na formatação que desejo.. porem teria ou que importar linha a linha algumas das informações.. ou reconverter para txt o qual já tenho o código de importação pronto


    Tenho que importar os valores em Negrito

    "1534003000016897";"20130701";"224781";"PAG BOLETO";"21.00";"D"
    "1534003000016897";"20130701";"227389";"PAG BOLETO";"63.87";"C"

    Tentei este código para converter em txt.. Salva o arquivo.. porém os caracteres saem ilegíveis.

    Sub SaveDocToText()
    Set wd = CreateObject("Word.Application")
    Set wDoc = wd.Documents.Open(CurrentProject.Path & "\Publicacao\importar\" & Left(StrArquivo, Len(StrArquivo) - 4) & ".docx")
    Call wDoc.SaveAs(CurrentProject.Path & "\Publicacao\importar\Teste.txt", wdFormatDOSText, , , , , , , , , , , True, True)
    wDoc.Close
    Set wDoc = Nothing
    wd.Quit
    Set wd = Nothing
    End Sub

    Obrigado pela Ajuda Alexandre.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Alexandre Neves 22/8/2013, 22:37

    Olá,
    Dim objWord As Object, objDoc As Object, Arquivo
    Set objWord = CreateObject("Word.Application")
    objWord.visible = True
    Set objDoc = objWord.Documents.Open("D:\Doc1.docx")
    Arquivo = "D:\Arquivo.txt"
    Open Arquivo For Append As #1
    Print #1, objDoc.content
    Close #1
    objDoc.Close SaveChanges:=False
    objWord.Quit

    ficheiro word -> D:\Doc1.docx
    ficheiro txt -> D:\Arquivo.txt

    Abraço,


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 22/8/2013, 22:41

    Este o que faz exatamente Alexandre?


    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 22/8/2013, 22:47

    Boas Alexandre... Abri o .Doc formatado.. mas ao salvar o txt este voltou ao mesmo formato..
    Talvez tenha que ser formatado como rtf...creio.

    Sub SaveAsTextFile()
    Dim objWord As Object, objDoc As Object, Arquivo
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Open(CurrentProject.Path & "\Publicacao\importar\" & Left(StrArquivo, Len(StrArquivo) - 4) & ".docx")
    Arquivo = CurrentProject.Path & "\Publicacao\importar\TesteConv.txt"
    Open Arquivo For Append As #1
    Print #1, objDoc.content
    Close #1
    objDoc.Close SaveChanges:=False
    objWord.Quit

    'ficheiro word -> D:\Doc1.docx
    'ficheiro txt -> D:\Arquivo.txt
    End Sub

    Cumprimentos.
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 22/8/2013, 22:48

    Eis o código completo e modelo do txt:


    Sub ConvertRtfToDocx()
    On Error Resume Next
    Dim Caminho As String
    Dim Titulo As String, filtro As String, NovoCaminho As String
    filtro = "Arquivos de texto (*.txt)" & Chr(0) & "*.txt" & Chr(0)
    Titulo = "Selecione o arquico de texto..."
    Caminho = CurrentProject.Path & "\publicacao\Importar"
    Caminho = LocalizarArquivo(Caminho, Titulo, filtro)
    StrArquivo = Mid(Caminho, InStrRev(Caminho, "\") + 1)
    StrCaminho = Caminho
    StrArquivo = StrArquivo
    If Len(StrCaminho) = 0 Then Exit Sub

    Set oWord = CreateObject("Word.Application")
           
            Set oDoc = oWord.Documents.Open(CurrentProject.Path & "\Publicacao\importar\" & StrArquivo)
            oDoc.SaveAs CurrentProject.Path & "\Publicacao\importar\" & Left(StrArquivo, Len(StrArquivo) - 4) & ".docx", _
                wdFormatXMLDocument
        '    myDocs = Dir()
       
        oWord.Quit
    'Me.SaveDocToText
    Me.SaveAsTextFile
    End Sub

    Sub SaveAsTextFile()
    Dim objWord As Object, objDoc As Object, Arquivo
    Set objWord = CreateObject("Word.Application")
    objWord.Visible = True
    Set objDoc = objWord.Documents.Open(CurrentProject.Path & "\Publicacao\importar\" & Left(StrArquivo, Len(StrArquivo) - 4) & ".docx")
    Arquivo = CurrentProject.Path & "\Publicacao\importar\TesteConv.txt"
    Open Arquivo For Append As #1
    Print #1, objDoc.content
    Close #1
    objDoc.Close SaveChanges:=False
    objWord.Quit

    'ficheiro word -> D:\Doc1.docx
    'ficheiro txt -> D:\Arquivo.txt
    End Sub


    https://dl.dropboxusercontent.com/u/26441349/extratoteste.txt

    Cumprimentos.
    Alexandre Neves
    Alexandre Neves
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 8449
    Registrado : 05/11/2009

    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Alexandre Neves 22/8/2013, 22:58

    Realmente, não copiou a formatação exacta. Apenas verifiquei que era legível e, com a pressa, não conferi.
    Vou finalizar o trabalho, por hoje, que já são horas de cama.
    Abraço amigo,
    Alexandre


    .................................................................................
    Access 2010. Mande bd que dê para testar (indique a versão). Não peça para fazer o que já tem feito. Dê todos os detalhes.
    Não coloquem entraves como senhas, esconder controlos, etc. Disponibilizem o mais limpo possível
    Só respondo a mensagens privadas, se forem de assunto privado; às outras não respondo.
    Quem trabalha e mata a fome não come o pão de ninguém; mas quem não trabalha e come, come sempre o pão de alguém. António Aleixo
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 23/8/2013, 14:10

    Alguma novidade Mestre?


    Cumprimentos.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Cláudio Más 23/8/2013, 16:21

    Uma alternativa:

    Código:
    Dim i, file As Integer
    Dim linha, strFinal As String

    file = FreeFile
    Open "C:\Pasta\Arquivo.txt" For Input As #file
    Line Input #file, linha
    Close #file

    strFinal = ""
    For i = 1 To Len(linha)
        strFinal = strFinal & Mid$(linha, i, 1)
        If Mid$(linha, i, 2) = "D" & Chr$(34) Or Mid$(linha, i, 2) = "C" & Chr$(34) Then
            strFinal = strFinal & Chr$(34) & vbCrLf
            i = i + 1
        End If
    Next i

    Kill "C:\Pasta\Arquivo.txt"
    Open "C:\Pasta\Arquivo.txt" For Output As #file
    Print #file, strFinal
    Close #file
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 23/8/2013, 16:35

    Bom dia Claudio.. irei testar o teu código..

    Eu consegui realizar a importação do arquivo porém foram muitas linhas de código devido aos dados estarem em uma linha apenas.
    Tenho certeza se estiver em linhas.. ficará bem mais simples


    Código que fiz para importar:

    '---------------------------------------------------------------------------------------
    ' Procedure     : ImportaTxt
    ' Author        : Harysohn P. Pina (PILOTO) - Harysohn@hotmail.com
    ' Fórum         : Fórum Máximo Access -  http://maximoaccess.forumeiros.com/
    ' Date          : 03/09/2013
    ' Comentários   : Importa arquivo de extrato
    '---------------------------------------------------------------------------------------
    Function ImportaTxt(banco As String)
    Dim Delimitador As String, Delimitador_1 As String
    Dim Rs As DAO.Recordset
    Dim fnum As Integer
    Dim LinhaDoTexto, LinhaDoTextoTemp As String
    Dim Posicao As Integer
    Dim ArquivoTexto As String
    Dim X           As Integer
    Dim X1          As Integer
    Dim nCount      As Long
    Dim dtDate      As Date
    Dim dblValor
    Dim dblValor1
    Dim StrTipo     As String
    Dim StrSQL      As String
    Dim StrConta    As String
    Dim lngNumero
    Dim StrDesc     As String
    Dim TextoTMP As String
    Dim CaminhoCopia As String

    '---------------------------------------------------
    'Carrega a variável com o SQL da tabela tblRetorno
    '---------------------------------------------------
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    On Error GoTo TrataErro
    Dim NomeProcedimento As String
        NomeProcedimento = "ImportaTxt"
        'Adiciona o nome do procedimento à função
        PegaProcedimento (NomeProcedimento)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
            StrSQL = "SELECT * FROM tblimportaextrato"
    '---------------------------------------------------
    'Carrego o recordset com a SQL
    '---------------------------------------------------
    Set Rs = CurrentDb.OpenRecordset(StrSQL)
    '---------------------------------------------------
    'Carrego a variácel com o caminho do arquivo texto
    '---------------------------------------------------
    ArquivoTexto = StrCaminho
    '-------------------------------------------------------------
    'Variável para representar o número da linha do arquivo texto
    '-------------------------------------------------------------
    'nLinha = 0
    X = 0
    '--------------------------------------------------------------------------------
    'Define delimitadores para importação do texto
    '--------------------------------------------------------------------------------
        Delimitador = ";" 'defina aqui qual o delimitador que não quer importar
        Delimitador_1 = """" 'defina aqui qual o delimitador que não quer importar"
        'If Delimitador = "" Then Delimitador = " "
        'If Delimitador = "" Then Delimitador = vbTab

        fnum = FreeFile
        '--------------------
        'Abre o arquivo texto
        '--------------------
        Open ArquivoTexto For Input As fnum
        '-------------------------
        'Realiza loop pelo arquivo
        '-------------------------
     
        Do While Not EOF(fnum)
            Line Input #fnum, LinhaDoTexto
              'Se a variável linha do texto for maior que 0
              If Len(LinhaDoTexto) > 0 Then
             
                'Executa laço na linha do texto
                Do While Len(LinhaDoTexto) > 0
    Volta:
                If nCount > 1 Then GoTo Continua
                    If X = 0 Or X = 1 Or X = 2 Or X = 3 Or X = 4 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X = 5 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Mid$(LinhaDoTexto, 13, 16)
                        StrConta = Right(TextoTMP, 9)
                        'MsgBox strConta
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X = 6 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                        dtDate = CDate(Mid(TextoTMP, 8, 2) & "/" & Mid(TextoTMP, 6, 2) & "/" & Mid(TextoTMP, 2, 4))
                        'MsgBox dtDate
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X = 7 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                        lngNumero = Mid(TextoTMP, 2, 6)
                        'MsgBox strConta
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X = 8 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                        StrDesc = Mid(TextoTMP, 2, (Len(TextoTMP) - 2))
                        'StrDesc = Left(TextoTMP, 6)
                        'MsgBox strConta
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X = 9 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                       If Len(TextoTMP) = 6 Then
                            dblValor = Mid(TextoTMP, 2, 4)
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        ElseIf Len(TextoTMP) = 8 Then
                            dblValor = Mid(TextoTMP, 2, 6)
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        ElseIf Len(TextoTMP) = 7 Then
                            dblValor = Mid(TextoTMP, 2, 5)
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        ElseIf Len(TextoTMP) = 9 Then
                            dblValor = Mid(TextoTMP, 2, 7)
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        ElseIf Len(TextoTMP) = 10 Then
                            dblValor = Mid(TextoTMP, 2, Cool
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        End If
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X = 10 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                        StrTipo = Mid(TextoTMP, 2, 1)
                        'MsgBox StrTipo
                        'Linha do texto excluído o texto extraido
                        'LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                        'Adiciona os registros na tabela
                        Rs.AddNew
                            Rs!banco = banco
                            Rs!conta = StrConta
                            Rs!descricao = StrDesc
                            Rs!databaixa = dtDate
                            Rs!Numero = lngNumero
                            Rs!ValorBaixa = dblValor
                            Rs!tipo = StrTipo
                        Rs.Update
                        nCount = nCount + 1
                        X1 = 0
                    End If
                    X = X + 1
    If nCount = 0 Then GoTo Volta
    Continua:
                    If X1 = 0 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Mid$(LinhaDoTexto, 6, 16)
                        StrConta = Right(TextoTMP, 9)
                        'MsgBox strConta
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X1 = 1 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                        dtDate = CDate(Mid(TextoTMP, 8, 2) & "/" & Mid(TextoTMP, 6, 2) & "/" & Mid(TextoTMP, 2, 4))
                        'MsgBox dtDate
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X1 = 2 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                        lngNumero = Mid(TextoTMP, 2, 6)
                        'MsgBox strConta
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X1 = 3 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                        StrDesc = Mid(TextoTMP, 2, (Len(TextoTMP) - 2))
                        'StrDesc = Left(TextoTMP, 6)
                        'MsgBox strConta
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X1 = 4 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                        If Len(TextoTMP) = 6 Then
                            dblValor = Mid(TextoTMP, 2, 4)
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        ElseIf Len(TextoTMP) = 8 Then
                            dblValor = Mid(TextoTMP, 2, 6)
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        ElseIf Len(TextoTMP) = 7 Then
                            dblValor = Mid(TextoTMP, 2, 5)
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        ElseIf Len(TextoTMP) = 9 Then
                            dblValor = Mid(TextoTMP, 2, 7)
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        ElseIf Len(TextoTMP) = 10 Then
                            dblValor = Mid(TextoTMP, 2, Cool
                            dblValor = Replace(dblValor, ".", ",")
                            'MsgBox dblValor
                        End If
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                    ElseIf X1 = 5 Then
                        'Posição do Delimitador no texto
                        Posicao = InStr(LinhaDoTexto, Delimitador)
                        'Texto extraído
                        If Len(LinhaDoTexto) = 4 Then
                            StrTipo = Mid(LinhaDoTexto, 1, 1)
                        Else
                            TextoTMP = Left$(LinhaDoTexto, Posicao - 1)
                            StrTipo = Mid(TextoTMP, 2, 1)
                        'MsgBox StrTipo
                        End If
                        'Linha do texto excluído o texto extraido
                        LinhaDoTexto = Mid$(LinhaDoTexto, Posicao + Len(Delimitador))
                        'Adiciona os registros na tabela
                       Rs.AddNew
                            Rs!banco = banco
                            Rs!conta = StrConta
                            Rs!descricao = StrDesc
                            Rs!databaixa = dtDate
                            Rs!Numero = lngNumero
                            Rs!ValorBaixa = dblValor
                            Rs!tipo = StrTipo
                        Rs.Update
                        nCount = nCount + 1
                    End If
                    If X1 < 5 Then
                        X1 = X1 + 1
                    Else
                        X1 = 1
                    End If
                'MsgBox LinhaDoTexto
                Loop
            End If
        nCount = nCount + 1
        Loop
    Finaliza:
    Close fnum

    '==========================================================================
    'Rotina para copiar o arquivo para a pasta importado
    '--------------------------------------------------------------------------
    Select Case banco
        Case "Banco do Brasil"
            CaminhoCopia = CurrentProject.Path & "\concilia\importado\BancoDoBrasil\" & StrArquivo1
            nCount = nCount - 1
        Case "Caixa Econômica"
            CaminhoCopia = CurrentProject.Path & "\concilia\importado\Caixa\" & StrArquivo1
            nCount = nCount - 1
        Case "Siscob"
            CaminhoCopia = CurrentProject.Path & "\concilia\importado\Siscob\" & StrArquivo1
            nCount = nCount - 1
        Case "Itaú"
            CaminhoCopia = CurrentProject.Path & "\concilia\importado\Itau\" & StrArquivo1
            nCount = nCount - 1
        Case "Santander"
        Case "Unibanco"
        Case "Mercantil do Brasil"
        Case "Bradesco"
        Case "Banco Rural"
        Case "Nossa Caixa"
        Case "CitiBank"
        Case "BBV Banco"
        Case "Bic Banco"
        Case "Banco Safra"
        Case "Sicredi"
        Case "BancoReal"
        Case "BCN"
        Case "Sudameris"
        Case "HSBC"
    End Select
    '-----------------------
    'limpa a caixa de opções
    '-----------------------
    Me.OpBanco = 0
    '-------------
    'Executa cópia
    '-------------
    MsgBox StrCaminho
    MsgBox CaminhoCopia
    FileCopy StrCaminho, CaminhoCopia
    '-------------------------
    'Deleta o arquivo original
    '-------------------------
    Kill StrCaminho
    '----------------------
    'Gera log de importação
    '----------------------
    'CurrentDb.Execute "INSERT INTO tblLogRetorno (NomeArquivo,NumeroRegistros,CpData) Values (" _
                    & """" & StrArquivo & """,""" & nCount & """, #" & Format(Date, "mm/dd/yyyy") & "#)"
    '----------------------------------------
    'Executa atualização nas ListBox's e Form
    '---------------------------------------
    Me.lstExtrato.Requery
    Me.Requery
    '------------------------------------------------
    'Mesagem de operação realizada
    '------------------------------------------------
    MsgBox "Foram importados " & Format$(nCount + 1) & " Registro(s)", vbInformation, "IMPORTAÇAO EFETUADA"
    Exit Function
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
        DoCmd.Hourglass False
        DoCmd.Echo True
    Exit Function
    TrataErro:
        Select Case Err.Number
            Case 5
               GoTo Finaliza
            Case Else
              DoCmd.Hourglass False
              DoCmd.Echo True
             'Chama a função global de tratamento de erros
             GlobalErrHandler (Me.Name)
      End Select
    End Function


    Obrigado
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 23/8/2013, 16:41

    Boas Claudio... Quase certo.. Veja em algumas linhas do final o erro:

    "Conta";"Data_Mov";"Nr_Doc"
    ;"Historico";"Valor";"Deb_Cred"
    "1534003000016897";"20130701";"224781";"PAG BOLETO";"21.00";"D"
    "1534003000016897";"20130701";"227389";"PAG BOLETO";"63.87";"D"
    "1534003000016897";"20130701";"528114";"DEB P FGTS";"54.24";"D"
    "1534003000016897";"20130702";"100000";"DP DINH AG";"1100.00";"C"
    "1534003000016897";"20130702";"100000";"DEP CH 48H";"150.00";"C"
    "1534003000016897";"20130703";"046490";"ENVIO TEV";"5000.00";"D"
    "1534003000016897";"20130705";"040713";"COB COMPE";"375.00";"C"
    "1534003000016897";"20130705";"224591";"CRED TEV";"160.00";"C"
    "1534003000016897";"20130705";"040713";"DEB SICOB";"2.95";"D"
    "1534003000016897";"20130705";"000000";"DB CEST PJ";"21.50";"D"
    "1534003000016897";"20130708";"050713";"COB COMPE";"2454.00";"C"
    "1534003000016897";"20130708";"062024";"SAQUE ATM";"20.00";"D"
    "1534003000016897";"20130708";"062025";"SAQUE ATM";"20.00";"D"
    "1534003000016897";"20130708";"498253";"PAG DARF";"56.34";"D"
    "1534003000016897";"20130708";"050713";"DEB SICOB";"8.85";"D"
    "1534003000016897";"20130710";"000010";"CHEQ COMP";"800.00";"D"
    "1534003000016897";"20130711";"100000";"DP DINH AG";"250.00";"C"
    "1534003000016897";"20130711";"100000";"DEP CH 24H";"570.00";"C"
    "1534003000016897";"20130711";"100000";"DEP CH 48H";"110.00";"C"
    "1534003000016897";"20130712";"000011";"CHEQ COMP";"50.00";"D"
    "1534003000016897";"20130715";"000012";"CHEQ COMP";"375.00";"D"
    "1534003000016897";"20130717";"170713";"COB AUTOAT";"935.65";"C"
    "1534003000016897";"20130717";"291613";"PAG BOLETO";"13.50";"D"
    "1534003000016897";"20130717";"170713";"DEB SICOB";"2.15";"D"
    "1534003000016897";"20130718";"204304";"PAG BOLETO";"32.75";"D"
    "1534003000016897";"20130718";"207353";"PAG BOLETO";"310.88";"D"
    "1534003000016897";"20130718";"488646";"PG ORG GOV";"243.12";"D"
    "1534003000016897";"20130718";"501978";"PG ORG GOV";"54.24";"D"
    "1534003000016897";"20130718";"505073";"PG ORG GOV";"223.74";"D"
    "1534003000016897";"20130722";"496980";"PG PREFEIT";"99.79";"D"
    "1534003000016897";"20130722";"000006";"DEB P CDC"
    ;"1471.91";"D"
    "1534003000016897";"20130722";"056614";"CX.SEGUROS";"52.22";"D"
    "1534003000016897";"20130729";"100000";"DP DINH AG";"600.00";"C"
    "1534003000016897";"20130729";"110000";"DEP CH 24H";"1000.00";"C"
    "1534003000016897";"20130729";"110000";"DEP CH 48H";"260.00";"C"
    "1534003000016897";"20130729";"000007";"DEB P CDC"
    ;"675.76";"D"

    "1534003000016897";"20130731";"253372";"PAG BOLETO";"100.00";"D"


    Cumprimentos.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Cláudio Más 23/8/2013, 18:21

    Olá Piloto, vê se agora está ok:

    Código:
    Dim i, file As Integer
    Dim linha, strFinal As String

    file = FreeFile
    Open "C:\Pasta\Arquivo.txt" For Input As #file
    Line Input #file, linha
    Close #file

    strFinal = Left$(linha, 1)
    For i = 2 To Len(linha)
        strFinal = strFinal & Mid$(linha, i, 1)
        If (Mid$(linha, i, 2) = "D" & Chr$(34) Or Mid$(linha, i, 2) = "C" & Chr$(34)) And Mid$(linha, i - 1, 1) = Chr$(34) Then
            strFinal = strFinal & Chr$(34) & vbCrLf
            i = i + 1
        End If
    Next i

    Kill "C:\Pasta\Arquivo.txt"
    Open "C:\Pasta\Arquivo.txt" For Output As #file
    Print #file, strFinal
    Close #file
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 23/8/2013, 19:10

    Perfeito!

    Obrigado pela ajuda amigão.
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 23/8/2013, 19:12

    Um pequeno detalhe...

    A primeira linha não separou.. podes ver isto?

    "Conta";"Data_Mov";"Nr_Doc";"Historico";"Valor";"Deb_Cred""1534003000016897";"20130701";"224781";"PAG BOLETO";"21.00";"D"
    "1534003000016897";"20130701";"227389";"PAG BOLETO";"63.87";"D"
    "1534003000016897";"20130701";"528114";"DEB P FGTS";"54.24";"D"
    "1534003000016897";"20130702";"100000";"DP DINH AG";"1100.00";"C"

    Cumprimentos.
    Cláudio Más
    Cláudio Más
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1314
    Registrado : 21/01/2012

    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Cláudio Más 23/8/2013, 21:32

    Código:
    Dim i, file As Integer
    Dim linha, strFinal As String

    file = FreeFile
    Open "C:\Pasta\Arquivo.txt" For Input As #file
    Line Input #file, linha
    Close #file

    strFinal = Left$(linha, 58) & vbCrLf
    For i = 59 To Len(linha)
        strFinal = strFinal & Mid$(linha, i, 1)
        If (Mid$(linha, i, 2) = "D" & Chr$(34) Or Mid$(linha, i, 2) = "C" & Chr$(34)) And Mid$(linha, i - 1, 1) = Chr$(34) Then
            strFinal = strFinal & Chr$(34) & vbCrLf
            i = i + 1
        End If
    Next i

    Kill "C:\Pasta\Arquivo.txt"
    Open "C:\Pasta\Arquivo.txt" For Output As #file
    Print #file, strFinal
    Close #file
    avatar
    Convidado
    Convidado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Convidado 23/8/2013, 22:05

    O que poderia dizer...

    Simplesmente perfeito!

    Mais uma para enriquecer meus conhecimentos.

    Obrigado Claudio e Alexandre..

    Conteúdo patrocinado


    [Resolvido]Editar arquivo .txt através do VBA Empty Re: [Resolvido]Editar arquivo .txt através do VBA

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 26/4/2024, 20:05