Ir ao conteúdo

Excel Macro para importar e organizar arquivo txt


Ir à solução Resolvido por Basole,

Posts recomendados

Postado

Olá, sou novo mexendo com VBA, estou com o seguinte problema:

 

Estou automatizando algumas coisas no meu setor e ao receber um arquivo em txt., desenvolvi uma macro que puxa os arquivos de campos determinados no txt e transporta para excel em células distintas, a transição deu tudo certo, as células estão preenchidas de forma correta, só tenho um problema, as datas estão vindo invertidas, por exemplo "11/03/2020" esta vindo "03/11/2020", estou deixando meu código aqui e também o arquivo em txt que importo, dentro da pasta .rar, se puderem me ajudar, agradeço.

 

Codigo:

Sub Teste_txt()

    Range("A1").Select

    ActiveCell.FormulaR1C1 = "Emissão"

    Range("B1").Select

    ActiveCell.FormulaR1C1 = "Título"

    Range("C1").Select

    ActiveCell.FormulaR1C1 = "/P"

    Range("D1").Select

    ActiveCell.FormulaR1C1 = "Estab"

    Range("E1").Select

    ActiveCell.FormulaR1C1 = "Espécie"

    Range("F1").Select

    ActiveCell.FormulaR1C1 = "Série"

    Range("G1").Select

    ActiveCell.FormulaR1C1 = "Vencimento"

    Range("H1").Select

    ActiveCell.FormulaR1C1 = "Portador"

    Range("I1").Select

    ActiveCell.FormulaR1C1 = "Cart"

    Range("J1").Select

    ActiveCell.FormulaR1C1 = "Cliente"

    Range("K1").Select

    ActiveCell.FormulaR1C1 = "Nome"

    Range("L1").Select

    ActiveCell.FormulaR1C1 = "UF"

    Range("M1").Select

    ActiveCell.FormulaR1C1 = "VL Original"

    Range("A2").Select

    Dim Conteudodalinha As String 'dimensão de sequencia caracteres

Open "C:\Users\ELIETE VIEGAS\Desktop\Macro Faturamento\Teste.txt" For Input As #1

 

    Do While EOF(1) = False 

   

        Line Input #1, Conteudodalinha 

       

If IsNumeric(Mid(Conteudodalinha, 7, 1)) = True Then 'Busca números na base

Cells(ActiveCell.Row, 1) = Mid(Conteudodalinha, 1, 10) 'Preenche a linha na col 1

Cells(ActiveCell.Row, 2) = Mid(Conteudodalinha, 12, 16) 'Preenche a linha na col 2

Cells(ActiveCell.Row, 3) = Mid(Conteudodalinha, 29, 2) 'Preenche a linha na col 3

Cells(ActiveCell.Row, 4) = Mid(Conteudodalinha, 32, 5)  'Preenche a linha na col 4

Cells(ActiveCell.Row, 5) = Mid(Conteudodalinha, 38, 7)  'Preenche a linha na col 5

Cells(ActiveCell.Row, 6) = Mid(Conteudodalinha, 46, 5)  'Preenche a linha na col 6  

Cells(ActiveCell.Row, 7) = Mid(Conteudodalinha, 52, 10)  'Preenche a linha na col 7  

Cells(ActiveCell.Row, 😎 = Mid(Conteudodalinha, 63, 😎 'Preenche a linha na col 8  

Cells(ActiveCell.Row, 9) = Mid(Conteudodalinha, 72, 4)  'Preenche a linha na col 9

Cells(ActiveCell.Row, 10) = Mid(Conteudodalinha, 77, 11)  'Preenche a linha na col 10  

Cells(ActiveCell.Row, 11) = Mid(Conteudodalinha, 89, 30)  'Preenche a linha na col 11  

Cells(ActiveCell.Row, 12) = Mid(Conteudodalinha, 130, 3)  'Preenche a linha na col 12  

Cells(ActiveCell.Row, 13) = Mid(Conteudodalinha, 135, 14)  'Preenche a linha na col 13     

     Cells(ActiveCell.Row + 1, ActiveCell.Column).Select

        End If

 

    Loop

   

    Close 1

End Sub

 

Teste.rar

  • Solução
Postado

Substitua as linhas abaixo no seu código.

 

Cells(ActiveCell.Row, 1) = VBA.Format(Mid(Conteudodalinha, 1, 10), "mm/dd/yyyy") 'Preenche a linha na col 1
Cells(ActiveCell.Row, 7) = VBA.Format(Mid(Conteudodalinha, 52, 10), "mm/dd/yyyy") 'Preenche a linha na col 7

 

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!