Notifications
Clear all

Importar dados em TXT no excel - como fazer

12 Posts
4 Usuários
0 Reactions
2,730 Visualizações
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Prezados, boa tarde!

Por favor, alguém poderia me ajudar? :) :) :)

Eu tenho um arquivo no formato TXT, eu preciso importar para o excel, porém eu preciso separar as informações por colunar. Exemplo: no arquivo txt contém a seguinte informação → <ARROZ>20<SAPATO>25<PAPEL>30<CANETA>50.

Eu preciso importar igual a imagem anexa.

Depois que o arquivo for importado no excel, eu vou alterar os dados entre os sinais > <, e depois exportar para o bloco de notas novamente.

Desde já agradeço a todos pela atenção.

Atenciosamente,
Marco

 
Postado : 17/04/2017 2:31 pm
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Sim é possível.

Não é necessário usar VBA. No Excel vá em: Dados -> Obter Dados Externos -> De Texto -> Selecione o arquivo.
Delimitar a região com Largura Fixa, colocar as 'setas' delimitado os espaços, escolher onde os dados irão.

att,

 
Postado : 17/04/2017 3:43 pm
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

brunoxro

Olá, bom dia!

Eu tentei realizar o procedimento indicado, porém não deu certo :cry: :cry: :cry:

Em anexo, segue documento contendo a tela do excel.

Atenciosamente,
Marco

 
Postado : 18/04/2017 5:16 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Uma possibilidade, levando em consideração sua unica linha de exemplo

Sub Macro1()
Dim F As Long, Linha As String, myLinha As String
Dim myRecord
'Altere para o caminho de seu txt
myPath = "C:UsersReinaldoDownloadsARQUIVO TESTE.txt"

F = FreeFile
Open myPath For Input As F   'abre o arquivo texto
'inicia os dados na linha 2 da planilha
x = 2
Do While Not EOF(F)
Line Input #F, Linha 'lê uma linha do arquivo texto
'substitui os caractes < e > por # e separa
myRecord = Split(VBA.Replace(VBA.Replace(Linha, ">", "#"), "<", "#"), "#")
'Grava os dados separados na planilha
For y = 1 To UBound(myRecord)
    Sheets(1).Cells(x, y) = myRecord(y)
Next
    x = x + 1
Loop
Close #F
End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 18/04/2017 11:26 am
brunoxro
(@brunoxro)
Posts: 698
Honorable Member
 

Marcos,

Depois que você seleciona o arquivo, você deve selecionar na tela a opção 'Largura Fixa' e não 'Delimitado'.
A sua tela mostra que você selecionou a opção 'Delimitado'.

att,

 
Postado : 18/04/2017 11:53 am
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Bruno e Reinaldo, boa tarde!

Agradeço pela ajuda e dos dois, muito obrigado! :) :)

Eu tentei usar a largura fixa, porém essa macro realiza todo o trabalho (mais rápido :lol: :lol: :lol: )

Referente essa macro que você postou, ela importa o arquivo texto, mas teria alguma que exportasse o arquivo novamente para a pasta de origem (depois que eu o alterasse).

Exemplo: eu uso essa macro e importo o arquivo, ai eu altero os campos que eu quero (mudar alguns valores apenas, não incluir e nem excluir linhas ou colunas), depois da alteração eu utilizo outra macro (se existir é claro :D :D ) e exporto o arquivo para a pasta de origem, porém com a alteração realizada (eu exporto e ele volta a ter a mesma formatação anterior) .

mais ou menos assim:

arquivo original

<arroz>20<sapato>30<caneta>50<telha>80

arquivo alterado

<arroz>30<sapato>55<caneta>80<telha>120

o arquivo foi salvo na pasta de origem (com a mesma formatação original), porém com as minhas alterações.

Desde já agradeço.

Atenciosamente,
Marco

 
Postado : 18/04/2017 12:59 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Eu qdo vejo uma duvida tenho por habito perguntar qual o objetivo.

P

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 : 18/04/2017 4:36 pm
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Eu qdo vejo uma duvida tenho por habito perguntar qual o objetivo.

P

Bom dia!

Referente sua indagação. Pelo fato de ser mais fácil editar um documento no excel (eu posso ir direto na coluna), ao invés de digitar ctrl+f no bloco de notas.

Atenciosamente,
Marco

 
Postado : 19/04/2017 5:22 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Exportar pode ser algo do tipo

Sub GeraTxt()

Caminho = ThisWorkbook.Path & Application.PathSeparator
Arquivo = "Exportar_Excel_pTxt.txt"
Open Caminho & Arquivo For Output As #1

Worksheets("Export").Activate
Range("A1").Select
linha = 2

Do Until IsEmpty(ActiveCell.Offset(0, 0))

        Cpo1 = "<" & Cells(linha, 1) & ">"
         
        Cpo2 = Cells(linha, 2)
        
        Cpo3 = "<" & Cells(linha, 3) & ">"
        
        Cpo4 = Cells(linha, 4)
        '....
        Dados = Cpo1 & Cpo2 & Cpo3 & Cpo4
       
    Print #1, Dados
    linha = linha + 1
    If Cells(linha, 1) = Empty Then Exit Do
Loop      
Close #1
End Sub

Obs.: Deve ser adaptado/completado conforme sua realidade

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/04/2017 5:38 am
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Olá, bom dia!

Por favor, você poderia me ajudar? Eu usei as macros que você passou (adaptei para minha realidade), mas não deu certo :cry: :cry: :cry:

o txt é gerado, porém em branco :o :o :o

o excel gera um arquivo no formato txt, mas ao abrir ele não contém nenhuma informação.

Em anexo, seguem os arquivos utilizados. Por favor, você (ou outro usuário) poderia verificar o que será que eu fiz de errado?

Muito obrigado!

Atenciosamente,
Marco

 
Postado : 19/04/2017 6:33 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Não adaptou corretamente, faltaram algumas colunas bem como alterar o nome da planilha e caminho

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 19/04/2017 10:56 am
(@marco-acv)
Posts: 142
Estimable Member
Topic starter
 

Reinaldo, boa tarde!

Desculpe pela falta de atenção :( .

Uma dúvida :!: :!: :!:

o arquivo que você usou contém esses dados.

<arroz>20<sapato>30<caneta>80.

se o arquivo for um pouco maior. Tipo assim:

<arroz>20<sapato>30<caneta>80<arroz>20<sapato>30<caneta>80<arroz>20<sapato>30<caneta>80.

Tem uma forma para a macro entender que é para exportar todos os dados contidos na planilha ao invés de ler até o 80. ?

Exemplo: se tiver mais dados além desse 80..

eu pensei em fazer assim:

Do Until IsEmpty(ActiveCell.Offset(0, 0))
Cpo1 = "<" & Cells(Linha, 1) & ">" 'Carrega celula A
Cpo2 = Cells(Linha, 2) 'Carrega celula B
Cpo3 = "<" & Cells(Linha, 3) & ">" 'Carrega celula C
Cpo4 = Cells(Linha, 4) 'Carrega celula D
Cpo5 = "<" & Cells(Linha, 5) & ">" 'Carrega celula E
Cpo6 = Cells(Linha, 6) 'Carrega celula F
Cpo7 = "<" & Cells(Linha, 7) & ">" 'Carrega celula G
Cpo8 = Cells(Linha, 8) 'Carrega celula H
Cpo9 = "<" & Cells(Linha, 9) & ">" 'Carrega celula I
Cpo10 = Cells(Linha, 10) 'Carrega celula J
Cpo11 = "<" & Cells(Linha, 11) & ">" 'Carrega celula K
Cpo12 = Cells(Linha, 12) 'Carrega celula L

Dados = Cpo1 & Cpo2 & Cpo3 & Cpo4 & Cpo5 & Cpo6 & Cpo7 & Cpo8 & Cpo9 & Cpo10 & Cpo11 & Cpo12 &

isso mesmo ou tem outra forma ?

muito obrigado pela atenção.

Atenciosamente,
Marco

 
Postado : 19/04/2017 12:23 pm