terça-feira, 6 de abril de 2010

Código para importação de arquivo texto delimitado

Vou deixar aqui só para eventual consulta.
O delimitador é o ponto-e-vírgula.
Arquivo texto sem cabeçalho.

;-)

Sub importa_delimitado()
   
    Dim entrada         As String       'linha do txt
    Dim i               As Single       'número de caracteres
    Dim linha           As Integer
    Dim coluna          As Integer
    Dim texto           As String       'texto a ser gravado na célula
    Dim ultimo          As Boolean      'controle do último caracter da linha
   
    Open "C:\Users\kazu\Desktop\pasta1.csv" For Input As #1
        
    linha = 1
    coluna = 1
    Do While Not EOF(1)
        Line Input #1, entrada
        For i = 1 To Len(entrada)
            If Mid(entrada, i, 1) = ";" Then
                Cells(linha, coluna).Value = texto
                coluna = coluna + 1
                texto = ""
            Else
                'Se for o último caracter, grava na célula
                If i = Len(entrada) Then
                    texto = texto & Mid(entrada, i, 1)
                    Cells(linha, coluna).Value = texto
                    coluna = coluna + 1
                    texto = ""
                    ultimo = True
                End If
                If Not ultimo Then texto = texto & Mid(entrada, i, 1)
            End If
            ultimo = False
        Next
        linha = linha + 1
        coluna = 1
    Loop
 
    Close #1
 
End Sub


2 comentários:

Kazu disse...

Edmar, boa noite!

Não conheço o arquivo, você consegue enviar um exemplo?
Olhei no site do IBGE mas não achei...

Aprendiz_VBA disse...

Sou aprendiz de VBA, precisava de um código que conseguisse importar um arquivo texto delimitado, localizei este publicado no seu blog em 2010.
Percebi que o último registro não importou e não tenho conhecimento ainda para localizar o ajuste necessário, conseguiria me ajudar, por gentileza.
Parabéns pelo seu trabalho, tu é fera.

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.