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



