Notifications
Clear all

Excel mais de 1 milhão de linhas

10 Posts
5 Usuários
0 Reactions
3,190 Visualizações
(@jeferson_r)
Posts: 34
Eminent Member
Topic starter
 

Galera, blz!

um arquivo CSV com 3 milhões de linhas

Alguém conhece uma forma de quebrar o arquivo em três partes? em 1 milhão de linhas cada?
*Detalhe não consigo abrir o arquivo... o código precisa abrir e trazer as linhas..

alguém consegue me ajudar?

Vlw

 
Postado : 11/11/2016 8:29 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Boa tarde.
Qual sua versão do excel?
Com essa quantidade de linhas eu sugiro utilizar o powerpivot para subir os dados.

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 11/11/2016 8:57 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Bom dia!!

Abra no Access.
Qual a sua versão do Office?
Att

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 11/11/2016 9:32 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Jeferson_R,

Bom dia!

Você já tem o arquivo Excel pronto e só não consegue abrir? Acredito que não seja isso, pois não teria condições do arquivo ter mais de 1.048 milhão de linhas. Nesse caso, você está importando dados via SQL, por exemplo, para o Excel? Se for isso, mande importar diretamente para uma planilha dinâmica.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 11/11/2016 9:41 am
(@jeferson_r)
Posts: 34
Eminent Member
Topic starter
 

Olá

meu Office é 2013
suporta até 1048576 linhas

Do access não consigo importar a extensão CSV.

 
Postado : 11/11/2016 9:57 am
(@jeferson_r)
Posts: 34
Eminent Member
Topic starter
 

.. tentei pelo powerpivot... mas dá esse erro:

Falha ao conectar ao servidor. Motivo: The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.

 
Postado : 11/11/2016 10:26 am
(@jeferson_r)
Posts: 34
Eminent Member
Topic starter
 

Consegui o código abaixo.. onde digo ao vba que quero trazer apenas linhas acima de 1048577.. mas dá o erro abaixo
O método 'Range' do objeto '_Global' falhou>

alguém sabe o motivo do erro?

quando digo ao vba para trazer da linha 0 até 1048500 ele traz... mas quando maior que 1048577 dá o erro...
<O método 'Range' do objeto '_Global' falhou>

segue o código

Public Sub quebrar_arquivo()
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 = InputBox("Digite o caminho do arquivo: ", actName)

'Identificar se o arquivo existe
If Dir(lsCaminho) <> "" Then
llArquivo = FreeFile
Open lsCaminho For Input As #llArquivo

lContador = 1048577 'especifico que quero apenas das linhas acima de 1048577 ....
llPlanilhas = 1

'Ler o arquivo texto
While Not EOF(llArquivo)
Line Input #llArquivo, llLinha

If lContador >= 1048577 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

 
Postado : 11/11/2016 12:51 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Boa tarde Jeferson_R,

Tende duas coisas, primeiro declare a variável lContador, sou seja:

Dim  lContador as long

Segundo, mude

If lContador >= 1048577 Then

para

If lContador > 1048577 Then

Ou seja, mude o 'maior ou igual' para o 'maior'.

Teste e de retorno.

att,

 
Postado : 12/11/2016 1:29 pm
(@jeferson_r)
Posts: 34
Eminent Member
Topic starter
 

Olá brunoxro,

Então .. se alterar "lContador para 1" ... e tirar os comentários (aspa simples) ..o excel roda e quebra em automaticamente tudo... em quantas páginas forem necessárias... porém.. por ter muitas linhas dá erro de memória...

*Tem como dizer ao VBA para trazer da linha 1048577 até 2048577 ?
Vlew

 
Postado : 14/11/2016 12:45 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Jeferson_R,

Sem ver seu arquivo só posso especular. Não sei dizer como buscar mais linhas só olhando o seu código.

Sobre o Access, acredito que ele abra arquivo csv sim, o arquivo está salvo em bloco de notas?

De uma olhada: https://www.youtube.com/watch?v=lwECITdxm2M

Depois de importar no Access você pode criar uma consulta e ir gerando planilhas do Excel.

att,

 
Postado : 14/11/2016 4:28 pm