Notifications
Clear all

[Resolvido] Importar via BOTÃO VBA - ARQUIVO TXT PROTHEUS

15 Posts
3 Usuários
0 Reactions
1,973 Visualizações
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

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.

 
Postado : 06/10/2020 11:52 am
(@edsonbr)
Posts: 0
New Member
 

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.

 
Postado : 06/10/2020 8:27 pm
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

@edsonbr

Boa noite! meu caro!

 

Segue anexo, as informações necessárias são só as colunas da planilha em anexo.

 

Rogério

 
Postado : 06/10/2020 8:50 pm
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

Se conseguir ajudar! não sei se conseguir expressar corretamente minha demanda

 
Postado : 06/10/2020 8:51 pm
(@edsonbr)
Posts: 0
New Member
 
Postado por: @edsonbr

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?

 
Postado : 06/10/2020 9:29 pm
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

@edsonbr Boa noite!

 

Sim. segue anexo.

 
Postado : 06/10/2020 10:06 pm
(@raygsson)
Posts: 0
New Member
 

@rfs

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

 

 
Postado : 07/10/2020 12:16 am
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

@raygsson

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.

 
Postado : 07/10/2020 11:07 am
(@raygsson)
Posts: 0
New Member
 

@rfs

Se não der certo anexe algum arquivo que contenha os volumes com mais de 999.

 
Postado : 07/10/2020 8:39 pm
(@raygsson)
Posts: 0
New Member
 

@rfs

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.

 
Postado : 07/10/2020 9:41 pm
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

@raygsson

 

Conforme sua explicação deu certinho!

Trabalho fantástico.

 

Muitíssimo Obrigado

 

Valeu mesmo.. ajudou no meu trabalho diário..

 

 
Postado : 07/10/2020 9:47 pm
(@raygsson)
Posts: 0
New Member
 

@rfs

Está funcionando, verifique se você não salvou a alteração realizada ontem.

 
Postado : 08/10/2020 12:03 pm
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

@raygsson

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

 

 
Postado : 08/10/2020 3:36 pm
(@raygsson)
Posts: 0
New Member
 

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)), ".", "")
 
Postado : 08/10/2020 7:14 pm
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

@raygsson

Agora deu certinho!! rsrs 

Muito Obrigado! por ter disponibilizado seu tempo para ajudar!

Parabéns pelo conhecimento

Obrigado

Resolvido

 
Postado : 08/10/2020 8:00 pm