Macro importar arquivo .txt

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Macro importar arquivo .txt

Mensagem por Afonso Serri em Qua Jul 06, 2011 4:14 pm

Boa tarde.

Pessoal, tenho vários arquivos .txt no meu computador salvos no diretório "C". Esses arquivos eu consegui através de extrações de relatórios no sistema SAP.
Para que eu consiga realizar o meu trabalho, eu preciso importar esse arquivos para o excel obedecendo alguns critérios:

1º. Em tipo de campo, eu seleciono "Delimitado"
2º. Em delimitadores, eu seleciono "Outros" e insiro o caractere "|"
3º. Em formato de dados de coluna, eu seleciono a opção "Texto" e então altero todas as colunas do arquivo .txt para "Texto".

Através do gravador de macro eu gravei todo o processo e então o código abaixo foi criado:

Sub Macro1()

Range("A1").Select
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;C:\Documents and Settings\dasilas\Meus documentos\KR 9Z\5000216\FBL2N 50000216 01.07.2011.txt" _
, Destination:=Range("$A$1"))

'C:\Documents and Settings\dasilas\Meus documentos = Meu diretório
'KR 9Z = Pasta mãe
'5000216 = Sub pasta (5000216 é o código do fornecedor que por sua vez é o nome da pasta)
'FBL2N 50000216 01.07.2011.txt = Nome do arquivo .txt

.Name = "FBL2N 50000216 01.07.2011"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False

End With

End Sub

Problema: Tenho várias "Sub pastas" referentes á diversos fornecedores, porém, após a primeira execução para importar o arquivo .txt referente ao primeiro fornecedor e alterar o código para que realize a busca em outra sub pasta, a macro não funciona e apresenta o seguinte erro:

"O Excel não pode localizar o arquivo de texto para atualizar esse intervalo de dados externos...", ou seja, não está encontrando o caminho que eu estou informando.

Linha com erro: .Refresh BackgroundQuery:=False

Detalhe: A única coisa que eu altero no código é o nome do fornecedor, por exemplo, onde está 5000216\FBL2N 50000216 01.07.2011.txt e .Name = "FBL2N 50000216 01.07.2011", eu altero para 5000226\FBL2N 50000216 01.07.2011.txt e .Name = "FBL2N 50000226 01.07.2011" respectivamente.

Alguém poderia por gentileza me ajudar a resolver isso ?

Obrigado.

Afonso Serri
Iniciante
Iniciante

Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por adilsonsoledade em Qua Jul 06, 2011 4:46 pm

Boa noite, meu caro.
Sem os arquivos, vai na base da tentativa / erro...
Experimente esta versão do código:
Código:

Sub Macro1()

Range("A1").Select

CodFornecedor = "50000216"
Arquivo = "FBL2N " & CodFornecedor & " 01.07.2011"
Pasta = "C:\Documents and Settings\dasilas\Meus documentos\KR 9Z\" & CodFornecedor & "\"

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & Pasta & Arquivo & ".txt" _
, Destination:=Range("$A$1"))

'C:\Documents and Settings\dasilas\Meus documentos = Meu diretório
'KR 9Z = Pasta mãe
'5000216 = Sub pasta (5000216 é o código do fornecedor que por sua vez é o nome da pasta)
'FBL2N 50000216 01.07.2011.txt = Nome do arquivo .txt

.Name = Arquivo
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileOtherDelimiter = "|"
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, _
2, 2, 2, 2)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False

End With

End Sub

Caso o erro persista, me envie dois dos teus arquivos txt para que eu possa simular o processo.

[ ]s
avatar
adilsonsoledade
Admin

Mensagens : 32
Data de inscrição : 28/06/2011
Idade : 47
Localização : São Paulo/ SP

Ver perfil do usuário https://usuariosdoexcel.wordpress.com

Voltar ao Topo Ir em baixo

Macro importar arquivo .txt

Mensagem por Afonso Serri em Qui Jul 07, 2011 6:36 am

Bom dia Adilson, tudo bem ? Espero que sim.

Infelizmente o erro continua na mesma linha:.Refresh BackgroundQuery:=False

Conforme sua orientação, tentarei disponibilizar o arquivo .txt para que então o cenário possa ser simulado.

Desde já, muito obrigado.

Abs.

Afonso Serri
Iniciante
Iniciante

Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Macro importar arquivo .txt

Mensagem por Afonso Serri em Qui Jul 07, 2011 8:12 pm

Boa noite.

Segue link para baixar os arquivos txt.

4shared.com FBL2N_50000216_01072011.html
4shared.com FBL2N_5000226_01072011.html

Obrigado.

Abraços.

Afonso Serri
Iniciante
Iniciante

Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por adilsonsoledade em Qui Jul 14, 2011 2:35 pm

Boa tarde,
Sei que demorou um pouco, mas o 4shared não está funcionando com o Chrome e depois de várias tentativas terminei reinstalado o IE.
Meu caro, ao executar a macro recebi o mesmo erro, após tentar executá-lo com o fornecedor código final 226. então percebi que o número de zeros deste último difere daquele utilizado para o fornecedor final 216. Ajustando o número de zeros o código rodou novamente.
Teste e veja se dá certo contigo também.
Se funcionar, que acha de montarmos um loop para percorrer todos os arquivos, sem necessidade de fazer modificações na macro a cada rodada?
[ ]s
avatar
adilsonsoledade
Admin

Mensagens : 32
Data de inscrição : 28/06/2011
Idade : 47
Localização : São Paulo/ SP

Ver perfil do usuário https://usuariosdoexcel.wordpress.com

Voltar ao Topo Ir em baixo

Macro importar arquivo .txt

Mensagem por Afonso Serri em Qui Jul 14, 2011 6:53 pm

Grande Adilson, boa noite, tudo bem ?

Tempos atrás eu também instalei o Chrome, porém, acabei reinstalando o IE...

Provavelmente o erro está sendo causado devido a esse zero á mais no nome do arquivo. O arquivo é nomeado manualmente, e sendo assim, pode ter sido nomeado incorretamente.

Adilson, conforme a sua informação, renomearei o arquivo, testarei o código e após feito, informarei o resultado.

Novamente muito obrigado e um forte abraço.

Afonso Serri
Iniciante
Iniciante

Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por Afonso Serri em Sex Jul 15, 2011 7:07 am

Bom dia.

Adilson, estou nesse exato momento verificando esse caso e realmente, conforme tu disse, o problema é causado pelo fato do arquivo estar nomeado com um nome diferente do nome existente na macro.

Sem dúvidas, isso foi falta de atenção da minha parte e eu estava tão cego que não conseguia enxergar esse "detalhe". Embarassed

Abraços e novamente, muito obrigado. sunny

Afonso Serri
Iniciante
Iniciante

Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por adilsonsoledade em Sex Jul 15, 2011 9:13 am

Bom dia, meu caro.
Que bom que está resolvido.
O que acha da proposta de criarmos uma macro única, buscando os arquivos de uma só vez através de um loop?
Preciso só da lista de arquivos que você utiliza e um alinhamento de como deseja consolidados (em vários arquivos, em várias planilhas ou em apenas uma planilha).
[ ]s
avatar
adilsonsoledade
Admin

Mensagens : 32
Data de inscrição : 28/06/2011
Idade : 47
Localização : São Paulo/ SP

Ver perfil do usuário https://usuariosdoexcel.wordpress.com

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por Afonso Serri em Sex Jul 15, 2011 12:37 pm

rsrsrsrs Boa tarde.

Adilson, fantástico ! É justamente esse o próximo passo do meu projeto ! Essa seria a próxima ajuda que eu iria solicitar ! rsrsrs

Quer que eu crie um novo tópico sobre esse tema ?

Adiantando para vc entender melhor o processo. Esses números que começam com 500... são códigos referentes á transportadores. No total são 18 códigos e conseqüentemente, tenho 18 pastas salvas nos meus documentos nomeadas com esses códigos.

Eu trabalho fazendo conciliação de contas e para que eu consiga realizar o meu trabalho, todo início de mês eu extraio do SAP os pagamentos que ficaram pendentes referentes á cada um dos códigos. Os arquivos são extraídos do SAP em txt e logo em seguida importados p/ Excel criando assim as minhas bases de dados. Por que isso ? Todo o processo de conciliação é realizado no Access através de algumas macros e para que as mesmas funcionem corretamente, eu preciso realizar várias alterações no lay out dessas bases. Por exemplo, excluir linhas e colunas vazias, substituir "-" por "", substituir "." por "/", etc. O resultado do processo realizado no Acces é um banco de dados com as conciliações, em seguida eu exporto esse banco para o Excel e então começo as análises desses resultados.

Espero que com essas informações eu tenha conseguido fazer com que vc tenha uma noção do processo realizado.

Muito obrigado.

Abraços.



Afonso Serri
Iniciante
Iniciante

Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por adilsonsoledade em Sex Jul 15, 2011 1:19 pm

Compreendi, sim.
Já fiz um processo similar para consolidação de informações de qualidade (módulo QM do SAP).
Procedia da mesma forma:
1. Geração dos relatórios;
2. Ajuste das informações via Excel;
3. Transferência para uma tabela do Access;
4. Montagem das consultas no Access;
5. Geração das tabelas dinâmicas no Excel, para montagem de relatórios flexíveis.
Inclusive é possível montar um processo bem automatizado para as etapas 2 e 3 de forma que, após realizados os ajustes, as informações do Excel sejam transferidas via macro para o Access. Em seguida podemos montar um link direto do banco de dados para o Excel através de uma consulta.
Para mantermos a organização do Fórum, acho melhor criar um novo tópico e a partir deste tocamos o desenvolvimento.
[ ]s
avatar
adilsonsoledade
Admin

Mensagens : 32
Data de inscrição : 28/06/2011
Idade : 47
Localização : São Paulo/ SP

Ver perfil do usuário https://usuariosdoexcel.wordpress.com

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por Afonso Serri em Sex Jul 15, 2011 2:25 pm

Isso mesmo Adilson, vc entendeu perfeitamente o caso !

Concordo contigo, o correto é abrir um novo tópico mesmo. Em breve farei isso.

Caso não nos falarmos mais essa semana, desde já, desejo p/ ti um ótimo final de semana.

Abraços.

Afonso Serri
Iniciante
Iniciante

Mensagens : 74
Data de inscrição : 04/07/2011
Localização : Joinville

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por adilsonsoledade em Sex Jul 15, 2011 2:34 pm

Bom final de semana para você também.
Abraços!
avatar
adilsonsoledade
Admin

Mensagens : 32
Data de inscrição : 28/06/2011
Idade : 47
Localização : São Paulo/ SP

Ver perfil do usuário https://usuariosdoexcel.wordpress.com

Voltar ao Topo Ir em baixo

Pode ajudar?

Mensagem por padunic em Qui Jan 26, 2012 8:36 am

Olá,

tenho arquivos textos em uma pasta e comecei a mexer nesta macro a fim de que ela cheque se nos arquivos textos que estão em uma pasta tenham um determinado valor.
Se este valor estiver a macro marca na planilha OK e diz quantos achou.

Pode dizer se esta macro esta dentro que quero que ela faça?
Estou na dúvida como informar o caminho e nome do arquivo dentro da pasta.
Seguinte dentro da pasta os arquivos textos começam com o mesmo nome, mas tem um incremento com a data que foi gerado.
Quero que ela leia apenas o nome e não o incremento. Ou seja tudo que estiver dentro da pasta que comece, por exemplo, com a palavra "force" deve ser lido pela macro.

Abraços e obrigado.

Padunic

Código:
Sub importar_base()
Dim Caminho, nome As String
Data = "111214"
fim = 2
Caminho = ThisWorkbook.Path & "\"
nome = Plan1.Range("b3") & Data & ".txt"
Do Until Data = "120119"
Plan2.Select
On Error Resume Next
With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & Caminho & "" & nome & "", Destination:=Range("$b" & fim))
        .PreserveFormatting = True
        .RefreshStyle = xlInsertDeleteCells
        .AdjustColumnWidth = True
        .TextFileStartRow = 1
        .TextFileParseType = xlDelimited
        .TextFileTextQualifier = xlTextQualifierDoubleQuote
        .TextFileSemicolonDelimiter = True
        .TextFileTrailingMinusNumbers = True
        .Refresh BackgroundQuery:=False
    End With
 
 
 fim = Range("e60000").End(xlUp).Row + 1



 Data = Data + 1
 
 
 Loop
End Sub

padunic
Iniciante
Iniciante

Mensagens : 1
Data de inscrição : 26/01/2012

Ver perfil do usuário

Voltar ao Topo Ir em baixo

ajuda

Mensagem por rfdas em Qui Jun 14, 2012 9:45 am

Bom dia a todos,

É a minha primeira postagem aqui no fórum... espero que na medida do possível possam me ajudar com o meu caso... assim como eu espero poder ajudar em futuras dúvidas de vcs
Eu recebo vários e-mails sobre novas promoções aqui na empresa, na qual criamos os produtos necessário para isso. O processo é automárico e o sistema dispara um e-mail avisando que o produto foi criado. Quando eu salvo a mensagem do outlook (*.msg) em *.txt, o arquivo fica dessa maneira:

De: atendimento.smartnet @ smartnet.com.br (sem o espaço entre o @)
Enviado em: terça-feira, 12 de junho de 2012 15:45
Para: Suporte Serviços
Assunto: Produto RelaxJun12 (651125) cadastrado via interface

O produto RelaxJun12 (651125) foi cadastrado com sucesso no CRM e está com o status "Em Criação". ID Promoção: 145BCA6-1.
Cliente cadastrado com sucesso.

Criação automática do produto realizada.

Atenciosamente,
Grupo VR



** Eu preciso exportar para o excel a informação do código do produto (no exemplo é o "651125") e a data de envio do e-mail (no exemplo acima é "12 de junho de 2012 15:45").. como faço isso ??

** OBS: eu preciso fazer isso com vários arquivos em um única vez, importar todos esses txt's para uma única planila do excel, os arquivos estão na pasta "C:\Documents and Settings\RFSILVA\Desktop\TESTE_EXCEL" e são nomeados de acordo com o e-mail, por exemplo, esse arquivo txt acima está nomeado na pasta como "Produto RelaxJun12 (651125) cadastrado via interface.txt" - idem ao assunto do e-mail

** OBS2: se houver a possibilidade de realizar o mesmo processo, porém com o arquivo *.msg (sem a necessidade de salvar em *.txt), ficaria muito grato em saber como é possível fazer o mesmo.

Grato pela ajuda e atenção, qualquer coisa podem me contatar pelo e-mail.

Att,

Rafael Silva

rfdas
Iniciante
Iniciante

Mensagens : 1
Data de inscrição : 13/06/2012

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Macro importar arquivo .txt

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum