Abrir arquivo texto no Excel o com mais de 1 milhão de linhas
Objetivo: Demonstrar como abrir um arquivo texto com mais de 1 milhão de linhas no Excel utilizando VBA.
Esta versão do artigo http://guiadoexcel.com.br/separar-linhas-de-um-arquivo-texto-em-planilhas, neste há uma melhoria pequena que permite que seja selecionado o arquivo, evitando que tenha que digitar o caminho completo do arquivo.
Veja neste link Como abrir arquivos com mais de 1.048.576 linhas no Excel com o PowerQuery no Excel.
Sugiro que incluam esta macro na sua pasta pessoal de macros para que possa ser usada quando necessária, pode ser de grande utilidade.
O Excel á partir de sua versão 2007 permite a criação de planilhas com 1.048.576 linhas, só que ás vezes temos que abrir arquivos texto no Excel com mais do que o limite de linhas da planilha, ou simplesmente desejamos separar o arquivo em planilhas com a quantidade igual de linhas.
Para isso criei uma macro que abre o arquivo em quantidades iguais em várias planilhas quantas forem necessárias.
Então é isso pessoal, este procedimento não separa o arquivo em colunas, porque cada arquivo texto possuem delimitadores diferentes. Em um próximo post vou demonstrar como separar em colunas um arquivo texto.
Public Sub LerArquivoTexto() On Error GoTo TratarErro Dim lsCaminho As String Dim llArquivo As Long Dim llLinha As String Dim lQtde As Long Dim llPlanilhas As Long 'Local do Arquivo lsCaminho = lfSelecionarArquivo 'InputBox("Digite o caminho do arquivo: ", actName) 'Qtde de Linhas a separar no arquivo lQtde = InputBox("A cada quantas linhas separar o arquivo: ", actName) 'Identificar se o arquivo existe If Dir(lsCaminho) <> "" Then llArquivo = FreeFile Open lsCaminho For Input As #llArquivo lContador = 1 llPlanilhas = 1 'Ler o arquivo texto While Not EOF(llArquivo) Line Input #llArquivo, llLinha If lContador <= lQtde Then Range("A" & lContador).Value = llLinha Else llPlanilhas = llPlanilhas + 1 Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = CStr(llPlanilhas) lContador = 1 Range("A" & lContador).Value = llLinha End If lContador = lContador + 1 Wend Close #llArquivo Else MsgBox "Arquivo não encontrado" End If Sair: Exit Sub TratarErro: MsgBox "Houve um erro na leitura do arquivo!" GoTo Sair Resume End Sub
DIGITE O SEU EMAIL PARA FAZER O DOWNLOAD DOS ARQUIVOS: Baixe a planilha
Abraço
Marcos Rieper