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
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.
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
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
Olá
meu Office é 2013
suporta até 1048576 linhas
Do access não consigo importar a extensão CSV.
.. 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.
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
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,
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
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,