Bom dia!
Meus caros!" Estou precisando importar o arquivo em anexo, já configurado para EXCEL. se possível via botão VBA
Como aqui só tem feras...tenho certeza que será moleza.
o anexo está com uma página, geralmente é de 100 a 300 páginas.
Obrigado.
Boa noite, @rfs
1) Facilite um pouco pra nós e numa planilha vazia disponha manualmente algumas dessas linhas da maneira como vc quer que fiquem lançadas após a importação (quais colunas, etc.).
2) A informação "GRUPO ATACADO - BA" e "GRUPO ALMEIDA NUNES" respectivamente do 3º e 6º pedidos se encaixariam em qual coluna (campo)? Não parecem ser municípios...
3) Forneça pelo menos mais uma ou duas páginas do txt, se possível.
Boa noite! meu caro!
Segue anexo, as informações necessárias são só as colunas da planilha em anexo.
Rogério
Se conseguir ajudar! não sei se conseguir expressar corretamente minha demanda
3) Forneça pelo menos mais uma ou duas páginas do txt, se possível.
Consegue anexar isso que pedi?
Pergunto isso pq. imagino que todas as páginas vêm com aquele cabeçalho cheio de asteriscos etc que está na primeira página. Ou não?
Desenvolvi a rotina e testei naquele arquivo, aparentemente está rodando bem.
Deixei igual ao modelo de planilha que anexou, confirme se é isso mesmo.
Sub Importar()
Set arq = Application.FileDialog(1)
With arq
.Title = "Selecione o arquivo"
.Filters.Clear
.Filters.Add "Text Files", "*.txt"
End With
If arq.Show Then
MeuArq = arq.SelectedItems(1)
Else
MsgBox "Nenhum arquivo selecionado.", vbExclamation, "Aviso."
Exit Sub
End If
Set arq = Nothing
Call Abrir(MeuArq)
MsgBox "Importação Efetuada.", vbInformation, "Aviso."
End Sub
Sub Abrir(MeuArq)
Dim p As Worksheet
Set p = Sheets("Plan1")
p.Range("A3:L1048576").ClearContents
lin = 3
Open MeuArq For Input As #1
Do While Not EOF(1)
Line Input #1, linha
If Mid(linha, 15, 1) = "/" And Mid(linha, 18, 1) = "/" Then
p.Cells(lin, "A") = Mid(linha, 1, 6)
p.Cells(lin, "B") = Mid(linha, 9, 3)
p.Cells(lin, "C") = CDate(Mid(linha, 13, 8))
p.Cells(lin, "D") = Mid(linha, 22, 5)
p.Cells(lin, "E") = CDate(Mid(linha, 30, 8))
p.Cells(lin, "F") = Trim(Mid(linha, 40, 20))
p.Cells(lin, "G") = Trim(Mid(linha, 62, 15))
p.Cells(lin, "H") = Trim(Mid(linha, 79, 20))
lin = lin + 1
Line Input #1, linha
p.Cells(lin, "I") = Trim(Mid(linha, 100, 2))
lin = lin + 1
Do While Not IsNumeric(Trim(Mid(linha, 147, 7)))
DoEvents
Line Input #1, linha
Loop
Do While Trim(Mid(linha, 105, 9)) <> "T O T A L" And Trim(Mid(linha, 105, 9)) <> ""
p.Cells(lin, "J") = Trim(Mid(linha, 105, 40))
p.Cells(lin, "K") = Trim(Mid(linha, 143, 4))
p.Cells(lin, "L") = CCur(Mid(linha, 147, 7))
lin = lin + 1
Line Input #1, linha
Loop
Do While Trim(Mid(linha, 105, 9)) = ""
Line Input #1, linha
Loop
p.Cells(lin, "J") = Trim(Mid(linha, 105, 30))
p.Cells(lin, "K") = Trim(Mid(linha, 142, 4))
lin = lin + 1
End If
Loop
Close #1
End Sub
Bom dia!
O Arquivo está perfeito! isso mesmo que preciso.
Só um item que se for possivel verificar, agradeço.
veja anexo, volumes maior que 1.000 fds não está considerando na coluna de quantidade.
Se não der certo anexe algum arquivo que contenha os volumes com mais de 999.
Testei aqui e aparentemente é a formatação da coluna "K" que esta atrapalhando.
Seleciona toda a coluna "K" > Click Botão Direito > Formatar Células > Deixa como "Texto" > OK.
Depois importa novamente.
Conforme sua explicação deu certinho!
Trabalho fantástico.
Muitíssimo Obrigado
Valeu mesmo.. ajudou no meu trabalho diário..
Boa tarde!
Estou verificando ...já utlizei os dois arquivos,,e formatei a coluna para texto, e depois importei novamente.. mas..os volumes maior que 1.000 só aparece como 1,0 e volumes de 1.040 como 1,04
Na versão anterior já funcionava aqui, porém agora retirei os "." que estavam sendo convertidos para "," na planilha.
Se agora não der certo com você é porque esta com muito azar kk
p.Cells(lin, "K") = Replace(Trim(Mid(linha, 140, 7)), ".", "")
Agora deu certinho!! rsrs
Muito Obrigado! por ter disponibilizado seu tempo para ajudar!
Parabéns pelo conhecimento
Obrigado
Resolvido