Logo Hardware.com.br
The_Password
The_Password Super Participante Registrado
447 Mensagens 2 Curtidas

[Resolvido] Importação de dados de arquivo.txt automática...

#1 Por The_Password 18/12/2009 - 16:53
Olá,

Estou precisando montar uma planilha onde eu pego um arquivo.txt que a gente recebe do banco e separar uma coluna específica do mesmo para recolher informações sobre o valor da tarifa cobrada por conta, enfim, o que preciso é pegar nesse arquivo, que é padrão, os valores de todas as linhas a partir de uma coluna específica para converter em valores em reais, por exemplo:

digamos que o arquivo venha neste formato:

arquivo.txt

---Início---
0010900458901510007701
0020800783901040007701
0023001039901040007701
0030900234301510007701
--- FIM ---


e que eu quero pegar a coluna que começa no 15º caractere até o 20º, sendo que os dois últimos são os centavos (neste exemplo ai, todas as linhas são 0,77 centavos o valor)

Pra fazer isso é muito simples e eu já fiz pra testar: fiz a importação do arquivo.txt e no tratamento eu marquei a coluna que eu queria usar e ele fez a importação certinho em uma planilha e em outra planilha eu coloquei as fórmulas para pegar os valores que eu queria da primeira planilha corretamente.
Ai, com as fórmulas prontas, fiz a importação de outros arquivos usando a mesma máscara e olhava na outra planilha e ele fez os cálculos certos sem eu precisar alterar nada)

Minha dúvida é a seguinte: tem algum jeito, seja com recursos automáticos do excel ou com macro, de eu programar para ele puxar um determinado arquivo .txt e já importar para a planilha com a máscara correta, sem precisar toda vez eu usar a importação e ficar filtrando os dados?

Pois vou deixar essa planilha para um outro funcionário preencher e ele não vai saber fazer essa importação manualmente como eu estou fazendo...


Obrigado pela atenção.
Responder
Jones_RB
Jones_RB Super Participante Registrado
368 Mensagens 36 Curtidas
#2 Por Jones_RB
19/12/2009 - 16:47
The_Password disse:
Olá,

Estou precisando montar uma planilha onde eu pego um arquivo.txt que a gente recebe do banco e separar uma coluna específica do mesmo para recolher informações sobre o valor da tarifa cobrada por conta, enfim, o que preciso é pegar nesse arquivo, que é padrão, os valores de todas as linhas a partir de uma coluna específica para converter em valores em reais, por exemplo:

digamos que o arquivo venha neste formato:

arquivo.txt

---Início---
0010900458901510007701
0020800783901040007701
0023001039901040007701
0030900234301510007701
--- FIM ---


e que eu quero pegar a coluna que começa no 15º caractere até o 20º, sendo que os dois últimos são os centavos (neste exemplo ai, todas as linhas são 0,77 centavos o valor)

Pra fazer isso é muito simples e eu já fiz pra testar: fiz a importação do arquivo.txt e no tratamento eu marquei a coluna que eu queria usar e ele fez a importação certinho em uma planilha e em outra planilha eu coloquei as fórmulas para pegar os valores que eu queria da primeira planilha corretamente.
Ai, com as fórmulas prontas, fiz a importação de outros arquivos usando a mesma máscara e olhava na outra planilha e ele fez os cálculos certos sem eu precisar alterar nada)

Minha dúvida é a seguinte: tem algum jeito, seja com recursos automáticos do excel ou com macro, de eu programar para ele puxar um determinado arquivo .txt e já importar para a planilha com a máscara correta, sem precisar toda vez eu usar a importação e ficar filtrando os dados?

Pois vou deixar essa planilha para um outro funcionário preencher e ele não vai saber fazer essa importação manualmente como eu estou fazendo...


Obrigado pela atenção.


Amigo tenta essa macro... porém vc tem que mudar o endereço no seu pc, nome do arquivo e nome de sua atual planilha.
OBS: o nome do arquivo txt que vc vai importar, sempre tem qu estar com o mesmo nome, nesse caso.

Sub Importartxt()
'endereço no pc onde está o artquivo para importar
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\Administrador\Desktop\importar.txt", Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:= _
False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
'linha e coluna onde vai copiar
Range("A1:A14").Select
Selection.Copy
'nome da pasta atual onde deseja colocar
Windows("Pasta1").Activate
'célula onde vai começar a colar
Range("A10").Select
ActiveSheet.Paste
Range("A10").Select
'irá fechar o arquivo que abriu para copiar
Windows("importar.txt").Close
End Sub

qualquer coisa me passa esse arquivo txt e planilha para mim por e-mail e diz a coluna que vc precisa que copie e em qual celula e planilha que vc quer que cole ([EMAIL="jones.bussmann@futurasc.net"]jones.bussmann@futurasc.net[/EMAIL])
Sds.
Jones R. Bussmann
The_Password
The_Password Super Participante Registrado
447 Mensagens 2 Curtidas
#3 Por The_Password
23/12/2009 - 11:11
JONESBUSSMANN disse:

Sub Importartxt()
'endereço no pc onde está o artquivo para importar
Workbooks.OpenText Filename:= _
"C:\Documents and Settings\Administrador\Desktop\importar.txt", Origin:= _
xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote _
, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:= _
False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
'linha e coluna onde vai copiar
Range("A1:A14").Select
Selection.Copy
'nome da pasta atual onde deseja colocar
Windows("Pasta1").Activate
'célula onde vai começar a colar
Range("A10").Select
ActiveSheet.Paste
Range("A10").Select
'irá fechar o arquivo que abriu para copiar
Windows("importar.txt").Close
End Sub


Valeu.

Eu precisava só disso mesmo, de um esquema de como fazer a macro pegar um arquivo externo pra importar... Personalizar ela eu já sei.

Vou fazer o seguinte, como o arquivo do banco sempre muda, cada banco manda um arquivo que renomeamos para: NOMEDOBANCO_DATA.TXT
Então vou fazer uma planilha de informações onde vou cadastrar os nomes de todos os arquivos por banco, e uma outra célula com a data do dia ("=HOJE"), ai vou fazer na planilha de importação de dados um botão para importar cada banco (porque as vezes tem banco que não manda arquivo)... e, depois, com os dados nas planilhas, eu faço uma fórmula para pegar apenas as informações que eu quero nas células que eu quero.


Quando eu terminar essa presepada toda, posto aqui a macro e coloco uma amostra do arquivo em excel e dos arquivos do banco para quem precisar de algo parecido poder ver se aproveita algo.

Abraço a todos!
David Donald Araujo de Paula

Jake Black - O Início...
SAEG - Setor TI
Guaratinguetá - SP
[EMAIL="jakepassword@hotmail.com"]david.dap@hotmail.com[/EMAIL]
Jones_RB
Jones_RB Super Participante Registrado
368 Mensagens 36 Curtidas
#4 Por Jones_RB
23/12/2009 - 19:42
The_Password disse:
Valeu.

Eu precisava só disso mesmo, de um esquema de como fazer a macro pegar um arquivo externo pra importar... Personalizar ela eu já sei.

Vou fazer o seguinte, como o arquivo do banco sempre muda, cada banco manda um arquivo que renomeamos para: NOMEDOBANCO_DATA.TXT
Então vou fazer uma planilha de informações onde vou cadastrar os nomes de todos os arquivos por banco, e uma outra célula com a data do dia ("=HOJE"), ai vou fazer na planilha de importação de dados um botão para importar cada banco (porque as vezes tem banco que não manda arquivo)... e, depois, com os dados nas planilhas, eu faço uma fórmula para pegar apenas as informações que eu quero nas células que eu quero.


Quando eu terminar essa presepada toda, posto aqui a macro e coloco uma amostra do arquivo em excel e dos arquivos do banco para quem precisar de algo parecido poder ver se aproveita algo.

Abraço a todos!



blz...
abraços.
Sds.
Jones R. Bussmann
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal