IMPORTAR ALGUMAS COLUNAS DO TXT PARA VBA

 Tópico anterior Próximo tópico Novo tópico

IMPORTAR ALGUMAS COLUNAS DO TXT PARA VBA

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#495571 - 05/11/2020 09:51:45

ESTEVESARTHUR
SÃO PAULO
Cadast. em:Novembro/2020


Bom dia!

Sou bem iniciante e estou com dúvidas de como prosseguir. Eu tenho um TXT e consegui importar ele pra VBA e até conseguir tirar a primeira linha que não precisava.

Porém, preciso refazer e apenas importar 5 colunas que me interessam, já que a planilha vai de A até a coluna GI.

E ainda por cima preciso ter a primeira linha com o nome que darei para as 5 colunas importadas. Isso é possível e como eu faria isso?

O código que usei:

Sub importar_arquivo()
    Application.ScreenUpdating = False
    importaArquivo
End Sub

Private Function importaArquivo()
    Dim arquivo As String
    arquivo = abrirArquivo
    If arquivo <> Empty Then
        Debug.Print 'ok'
        ActiveWorkbook.Worksheets.Add 'nova planilha
        With ActiveSheet.QueryTables.Add(Connection:= _
        'TEXT;' & arquivo & '', Destination:=Range('A1'))
            .Name = 'teste'
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = 850
            .TextFileStartRow = 2
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = False
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileOtherDelimiter = '|'
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
    End If
    arquivo = ''
End Function

Function abrirArquivo() As String
    Dim arquivo As String
    On Error GoTo sair:
    arquivo = ''
    With Application.FileDialog(msoFileDialogFilePicker)
          'Selecção de apenas um aquivo
          .AllowMultiSelect = False
          'Filtro de extenção
          .Filters.Add 'All files', '*.txt; *.csv'
          'Mostra a caixa de dialogo
          .Show
          'Armazena o caminho do arquivo
          arquivo = .SelectedItems.Item(1)
    End With
    abrirArquivo = arquivo
sair:
    arquivo = ''
End Function
E o código que preciso fazer é pegar apenas o que deixei em negrito na primeira linha.

    [H2]1|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||51|20201030000000||20201030000000|||||||||||||2||||||988788|9770|9770|||||||0|0|0||||False|UNITS|12||||20250220000000|||||||12|12|0|6|988788||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]2|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||12|20201016000000||20201016000000||||||||1|||||1||||||EMB99999990020000000673|126|126|||||||0|0|0||||False|UNITS|12||||20220621000000||||||TRANSPORTADORA|4.49|17995.8|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]3|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||12|20201016000000||20201016000000||||||||1|||||1||||||EMB99999990020000000674|126|126|||||||0|0|0||||False|UNITS|12||||20220621000000||||||TRANSPORTADORA|4.49|17995.8|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]4|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||12|20201016000000||20201016000000||||||||1|||||1||||||EMB99999990020000000675|126|126|||||||0|0|0||||False|UNITS|12||||20220621000000||||||TRANSPORTADORA|4.49|17995.8|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]5|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||12|20201016000000||20201016000000||||||||1|||||1||||||EMB99999990020000000676|126|126|||||||0|0|0||||False|UNITS|12||||20220621000000||||||TRANSPORTADORA|4.49|17995.8|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]6|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||12|20201016000000||20201016000000||||||||1|||||2||||||EMB99999990020000000669|160|160|||||||0|0|0||||False|UNITS|12||||20220202000000||||||TRANSPORTADORA|4.49|6621.6|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]7|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||12|20201016000000||20201016000000||||||||1|||||2||||||EMB99999990020000000670|160|160|||||||0|0|0||||False|UNITS|12||||20220202000000||||||TRANSPORTADORA|4.49|6621.6|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]8|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||12|20201016000000||20201016000000||||||||1|||||2||||||EMB99999990020000000671|160|160|||||||0|0|0||||False|UNITS|12||||20220202000000||||||TRANSPORTADORA|4.49|6621.6|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]9|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||12|20201016000000||20201016000000||||||||1|||||2||||||EMB99999990020000000672|160|160|||||||0|0|0||||False|UNITS|12||||20220202000000||||||TRANSPORTADORA|4.49|6621.6|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||
[H2]10|2|||10|49.92|1818481.6|0|S0011||||||||||||S0011|||||||||||||51|20201030000000||20201030000000|||||||||||||1||||||EMB99999990020000000742|127|127|||||||0|0|0||||False|UNITS|12||||20220520000000||||||TRANSPORTADORA|2|1720000|0|7|||||||||||0|0|0|0|0|0|0|0|0|0|||||||||||||||||||||0|0|0|0|0||||||||||||||||||||||||


Abraços,

Arthur Esteves

 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário