Jump to content

AlexSousa

Membros
  • Contagem de Conteúdo

    1
  • Ingressou

  • Última visita

Postagens postado por AlexSousa

  1. 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

     

×
×
  • Create New...