Notifications
Clear all

VBA importar arquivo PRN

12 Posts
3 Usuários
0 Reactions
2,256 Visualizações
(@marcosta)
Posts: 13
Active Member
Topic starter
 

Bom dia Amigos,

Estou tentando criar um programinha para importar dados gerados a partir do sistema QAD 2007 para uma planilha do Excel, posteriormente farei o tratamento dos dados e a saida de um relatorio dos datos tratados.

Estou travado na importação, o arquivo que preciso importar é "*.prn", se tento fazer a importação da mesma forma que faria um arquivo "*.txt" todos os dados vão para a mesma célula, e eu preciso que cada linha do arquivo entre em uma célula da coluna "F".

Realmente, se abro o "PRN" com o notepad, não consigo ver claramente as quebras de linha, mas de abro com o excel as quebras de linha são claras, então outra tentativa que fiz foi abrir o "PRN" como WORBOOKS para tentar recortar e colar, mas ai encontrei doi problemas:

1. O arquivo é realmete aberto na tela, e eu gostaria isso ficasse oculto
2. Eu consigo copiar os dados do "PRN", mas na hora de colar no excel sempre retorna erro.

Grato,

Marcus Costa

 
Postado : 07/11/2015 9:37 am
(@mprudencio)
Posts: 2749
Famed Member
 

Disponibilize um arquivo PRN e a planilha que deve receber a importação e indique onde devera haver a quebra das linhas.

....

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 07/11/2015 10:22 am
(@marcosta)
Posts: 13
Active Member
Topic starter
 

Obrigado por responder,

Infelizmente não posso enviar o PRN que preciso importar, pois os dados não sao de minha propriedade, entretanto estou anexando outro PRN gerado pelo mesmo sistema para teste.

Anto a planilha que vai receber, é apenas uma planilha .xlxm em branco.

Se você abrir o PRN atrazés do excel verá as quebras de linha na coluna "A", a planilha que irá receber, entrará com os dados na coluna "F".

Em tempo, estou tentando uma método paralelo, que seria duplicar a aba do PRN para o arquivo que estou trabalhando, depis iria inserir 5 colunas para jogar os dados para a coluna F, porém como fechar o arquivo de origem após a copia? o nome e caminho do arquivo é variavel "CAMINHO":

Private Sub Carregar_Click()

Workbooks.Open (Caminho)
Sheets.Select
ActiveSheet.Name = "RELATORIO"
Sheets.Select
Sheets.Copy Before:=Workbooks("494B ADD IN.xlsm").Sheets(1)
Workbooks(Caminho).Close

End Sub

Não acho que seja o ideal, mas...

Obrigado.

Marcus

 
Postado : 07/11/2015 10:45 am
(@marcosta)
Posts: 13
Active Member
Topic starter
 

Bom, para facilitar entou enviando a planilha .xlxm que estou tentando criar o FORM.

O codigo está no botão "carregar" do form.

ainda está no estagio inicial, e eu estou fazendo mais para aprender VBA do que para criar uma solução para um problem real.

Muito grato.

Marcus

 
Postado : 07/11/2015 10:55 am
(@nelson-s)
Posts: 96
Trusted Member
 

Disponibilize um arquivo mostrando como devem ficar os dados após a importação do arquivo *.prn que fica bem mais fácil de entender.
O arquivo Teste.prn disponibilizado ao que parece só contém um registro.
O arquivo *.prn a ser importado também conteria apenas um registro como o arquivo Teste.prn ou conteria diversos registros?

 
Postado : 07/11/2015 12:46 pm
(@nelson-s)
Posts: 96
Trusted Member
 

Veja se é mais ou menos isto que você quer fazer...

 
Postado : 07/11/2015 3:32 pm
(@marcosta)
Posts: 13
Active Member
Topic starter
 

Nelson, obrigado pela resposta!

é mais ou menos isso o que quero fazer sim, mas preciso que o retorno contemple inclusive o excesso de espaço e as linhas em branco do arquivo original, ficaria assim:

Iniciando Carrega/o Grupo Dados 09/10/15 09:48:09

Carrega/o Grupo Dados Completo 09/10/15 09:48:29
Grupos Processados 420 Erros de Banco de Da 0 Avisos de Programa 0 Erros Programa 0

Fim Relatório

Critérios de Relato: Relato Submetido Por: marcosta

ID Grupo: 1006041 =>: 1006460

Repete Processam: Não

Aguarde antes de Repetir: 300

Processa Direto do Arquivo: Nao

Arquivo Entrada:

Saída: 1006041

Obrigado pela ajuda!

 
Postado : 07/11/2015 3:44 pm
(@nelson-s)
Posts: 96
Trusted Member
 

Veja se seria isto...

 
Postado : 07/11/2015 3:54 pm
(@marcosta)
Posts: 13
Active Member
Topic starter
 

Nelson, perfeitamente o que eu preciso!

Vou estudar seu codigo para aprender mais!

Em tempo, o PRN original que preciso carregar, não carrega completamente, a linha que gera o erro tem o seguite conteúdo(sem aspas):
" ======================== ================= ================= ================= ================= ================= ================= ================= ================= ================= ================= ================= ================= ================="
Erro: 1004
Descrição : erro de definição de aplicativo ou de definicao de objeto
rotina: "abrirarquivo"

 
Postado : 07/11/2015 4:23 pm
(@nelson-s)
Posts: 96
Trusted Member
 

Comente a linha "On Error GoTo PROC_ERR" e execute a rotina. Ela vai mostrar onde está dando erro no código.

O problema é que sem eu ter acesso ao seu arquivo *.prn para mim é muio difícil dizer o que estaria causando o erro. Eu teria que "adivinhar".

Tente ver se você consegue.

 
Postado : 07/11/2015 10:06 pm
(@marcosta)
Posts: 13
Active Member
Topic starter
 

Nelson,

Segue arquivo que gera erro, removi parte das informações, apenas para teste.

Obrigado.

Marcus.

 
Postado : 08/11/2015 12:15 pm
(@nelson-s)
Posts: 96
Trusted Member
 

Marcus,

È complicado para mim escrever uma rotina de importação de arquivo com "pedaços" do arquivo.

Dessa maneira eu não tenho condições de saber quais são as linhas que devem ou não serem importadas e se há um padrão para fazer isso.

Você disponibilizou dois arquivos. Porém, seus conteúdos não têm nada a ver um com o outro.

Eu precisaria ter um arquivo inteiro e saber quais são as linhas que devem ser importadas e quais são as que devem ser descartadas.

Sem ter essas informações fica muito difícil poder desenvolver a rotina.

 
Postado : 09/11/2015 9:53 pm