arquivo txt

Dúvidas gerais sobre Excel

arquivo txt

Mensagempor pedrocarvalho6 » Seg Jul 16, 2012 2:31 pm

Boa tarde,

Estou criando uma macro que le o arquivo.txt linha a linha com esse código.

Código: Selecionar todos
Sub ReadAsciiFile()

    Dim sFileName As String
    Dim iFileNum As Integer
    Dim sBuf As String
    Dim html As String

    ' edit this:
    sFileName = "C:\test.txt"

    ' does the file exist?  simpleminded test:
    If Len(Dir$(sFileName)) = 0 Then
        Exit Sub
    End If

    iFileNum = FreeFile()
    Open sFileName For Input As iFileNum

    Do While Not EOF(iFileNum)
        Line Input #iFileNum, sBuf
        html = html & vbCrLf & sBuf
    Loop

    ' close the file
    Close iFileNum

End Sub



esse arquivo tem cerca de 200 linhas, porem em uma das linhas é tipo essa:

< w e b v e r s i o n class='' style='color: #00ffff; text-decoration: none;'>" & Range("L2").Value & "< / w e b v e r s i o n > < / t d >

como posso fazer para a vba pegar o valor do Range("L2").Value ao inves de trazer escrito "Range("L2").Value" no resultado?

Obrigado
pedrocarvalho6
 
Mensagens: 4
Registrado em: Seg Jul 16, 2012 1:04 pm
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 0 vez

Re: arquivo txt

Mensagempor webmaster » Seg Jul 16, 2012 4:42 pm

Pedro,

Se é de conhecimento o "padrão" da linha, faria na base do Replace. Algum problema nisso?

Abraços
Tomás
http://www.tomasvasquez.com.br/blog
http://twitter.com/tomamais
Gostou da resposta? Clique no ícone Imagem da mensagem!
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.
Avatar do usuário
webmaster
Administrador
 
Mensagens: 1722
Registrado em: Sex Jul 24, 2009 2:44 pm
Agradecimentos dados: 104 vezes
Agradecimentos recebidos: 77 vezes

Re: arquivo txt

Mensagempor pedrocarvalho6 » Seg Jul 16, 2012 6:42 pm

webmaster escreveu:Pedro,

Se é de conhecimento o "padrão" da linha, faria na base do Replace. Algum problema nisso?

Abraços



Desculpa mas não entendi a resposta, mas tentando explicar melhor, não sei em qual linha vira o texto e serão diversas as vezes que precisaria o replace.
Uma vez que serão varias vezes que o arquivo.txt terá "interação com a celular do excel"..
pedrocarvalho6
 
Mensagens: 4
Registrado em: Seg Jul 16, 2012 1:04 pm
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 0 vez

Re: arquivo txt

Mensagempor webmaster » Ter Jul 17, 2012 11:50 am

Pedro,

O código analisa linha a linha, certo? O que você quer encontrar tem um padrão ou formato? Se sim, é esse padrão que mencionei na resposta anterior. Penso que esteja usando a função Find para fazer essa análise, certo? De resto, é usar a função Replace para separar o que deseja.

Alguma dúvida nisso?
Tomás
http://www.tomasvasquez.com.br/blog
http://twitter.com/tomamais
Gostou da resposta? Clique no ícone Imagem da mensagem!
Se sua dúvida foi solucionada, acrescente [RESOLVIDO] ao título.
Avatar do usuário
webmaster
Administrador
 
Mensagens: 1722
Registrado em: Sex Jul 24, 2009 2:44 pm
Agradecimentos dados: 104 vezes
Agradecimentos recebidos: 77 vezes

Re: arquivo txt

Mensagempor pedrocarvalho6 » Qua Jul 18, 2012 8:28 pm

webmaster escreveu:Pedro,

O código analisa linha a linha, certo? O que você quer encontrar tem um padrão ou formato? Se sim, é esse padrão que mencionei na resposta anterior. Penso que esteja usando a função Find para fazer essa análise, certo? De resto, é usar a função Replace para separar o que deseja.

Alguma dúvida nisso?


Mais uma vez agradeço pelo conselho, porém não é esse o meu caso.

Vou tentar explicar de forma mais clara com um exemplo.

Na celula A1 da minha planilha esta o texto "Teste1", na celula A2 o texto "Teste2", na celula A3 "Teste3".

E o meu arquivo txt está da seguinte forma.
--------------------------------------------------------------------------------------------------------------
Boa noite,

Na primeira linha quero que pegue o texto: " & Range("A1").value & vbCrLf & "
Na segunda linha quero que pegue o texto: " & Range("A2").value & vbCrLf & "
Na terceira linha quero que pegue o texto: " & Range("A3").value
--------------------------------------------------------------------------------------------------------------

Ao final do código de leitura do arquivo o texto em na msgbox fica exatamente igual ao de cima, sendo que gostaria que o resultado fosse:
--------------------------------------------------------------------------------------------------------------
Boa noite,

Na primeira linha quero que pegue o texto: Teste1
Na segunda linha quero que pegue o texto: Teste2
Na terceira linha quero que pegue o texto: Teste3
--------------------------------------------------------------------------------------------------------------

Não sei se consegui explicar de uma maneira mais clara, porém não estou utilizando função alguma somente por código.

Obrigado
pedrocarvalho6
 
Mensagens: 4
Registrado em: Seg Jul 16, 2012 1:04 pm
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 0 vez

Re: arquivo txt

Mensagempor Vega » Sáb Ago 18, 2012 8:52 pm

Pedro,

O código abaixo deve ajudar.

Código: Selecionar todos
Sub LerArquivo()
Dim ObjFso  As New Scripting.FileSystemObject
Dim Arquivo As Scripting.TextStream
Dim Linha   As String
Dim i       As Integer
Dim Celula  As Range

Set Arquivo = ObjFso.OpenTextFile("C:\Teste.txt", ForReading)
   
    While Not Arquivo.AtEndOfStream
       
        Linha = Arquivo.ReadLine
   
        For i = 1 To Len(Linha)
            If Mid(Linha, i, 1) = "R" Then
               
                If Left(Mid(Linha, i, Len(Linha)), 5) = "Range" Then
                    Set Celula = Range(Trim(Replace(Left(Mid(Linha, i, Len(Linha)), 9), "Range(" & Chr(34), "")))
       
                    MsgBox Left(Linha, i - 5) & Celula.Value
               
                End If
            End If
        Next i
           
    Wend
   
    Arquivo.Close

End Sub


Antes de testar, ative a Referência "Microsoft Scripting Runtime", no editor do VBA em: Ferramentas > Referências...

Eu prefiro usar Scripting para manipular arquivos.

Crie o arquivo C:\Teste.txt

No código eu considerei o padrão do seu último post
Avatar do usuário
Vega
 
Mensagens: 26
Registrado em: Sáb Ago 18, 2012 7:46 pm
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 6 vezes

Re: arquivo txt

Mensagempor pedrocarvalho6 » Qua Set 05, 2012 8:40 pm

Excelente.


Funcionou perfeitamente... muito obrigado.
pedrocarvalho6
 
Mensagens: 4
Registrado em: Seg Jul 16, 2012 1:04 pm
Agradecimentos dados: 0 vez
Agradecimentos recebidos: 0 vez

Anúncios


Voltar para Geral

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitantes