Jump to content

Como limpar dados de um txt por VBA


AlexSousa

Postagens Recomendadas

Olá, criei uma macro recentemente onde importo um arquivo txt para o excel, porém tenho vários desses txt onde os dados são diferentes. E nesses txt sempre vem com umas palavras, como titulos e descrição, eles tem um padrão que sempre vem em 8, porém podem acontecer de vir 8 linhas dessas palavras, um abaixo da outra tanto no inicio do txt quanto no final. Queria saber se é possivel fazer uma macro para que filtre esses dados e apague automaticamente na hora da importação? 

OBS: Ele precisa localizar onde estão essas palavras e excluir, independente da célula que ela esteja.

Gostaria de filtrar essas palavras e apagar automaticamente:

 "* AS - IMPL", "-----------", "BRB - BANCO", "C/C VINCULA", "ECC - SISTE", "i")

isso.PNG

 

Segue minha macro onde importa os arquivos txt:

Sub lerTxt()
    Dim sheet As Worksheet
    Dim selecao As Variant
    Dim i As Integer, linha As Integer
    
    selecao = Application.GetOpenFilename(Filefilter:="Texto, *.txt", Title:="Selecione um arquivo", MultiSelect:=True)
    
    If VarType(selecao) = vbBoolean Then Exit Sub 'Nenhum arquivo selecionado
    'Se não for boolean, é uma array de strings com caminhos de arquivo.
    
    ' Aqui é que você tem que iterar, pois "selecao" contém uma array com caminhos de arquivo.
    ' Dentro de cada iteração, você faz aquilo que você já estava fazendo.
    For i = 1 To UBound(selecao) Step 1
        Open selecao(i) For Input As #1
        Set sheet = ActiveWorkbook.Sheets.Add(After:=ActiveWorkbook.Worksheets(ActiveWorkbook.Worksheets.Count))
        
        linha = 1
        Do Until EOF(1)
            Line Input #1, valorLin
            Cells(linha, 1).Value = valorLin
            linha = linha + 1
        Loop
        Close #1
        
        sheet.UsedRange.TextToColumns Other:=True
        sheet.Columns().EntireColumn.AutoFit
    Next i


End Sub

 

Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...