Notifications
Clear all

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

15 Posts
3 Usuários
0 Reactions
1,995 Visualizações
Rogério Freitas
(@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
(@edsonbr)
Posts: 1057
Noble 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
Rogério Freitas
(@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
Rogério Freitas
(@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
(@edsonbr)
Posts: 1057
Noble 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
Rogério Freitas
(@rfs)
Posts: 63
Estimable Member
Topic starter
 

@edsonbr Boa noite!

 

Sim. segue anexo.

 
Postado : 06/10/2020 10:06 pm
Raygsson
(@raygsson)
Posts: 68
Trusted 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
Rogério Freitas
(@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
(@raygsson)
Posts: 68
Trusted 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
(@raygsson)
Posts: 68
Trusted 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
Rogério Freitas
(@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
(@raygsson)
Posts: 68
Trusted Member
 

@rfs

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

 
Postado : 08/10/2020 12:03 pm
Rogério Freitas
(@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
(@raygsson)
Posts: 68
Trusted 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
Rogério Freitas
(@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