Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jessica SVP

[Resolvido] Como ler arquivos TXT no VBA ?

Recommended Posts

Pessoal, desculpa interromper. Mas eu preciso muito de ajuda. Preciso fazer isso que vcs fizeram, porém em VBA. Brigado

 

OBS.: Preciso fazer isso no VBA no Word!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jéssica, seja bem vinda ao Fórum iMasters, conheça nossas regras: Regras do Fórum

 

Você esta postando em um tópico de 2006: http://forum.imasters.com.br/index.php?/topic/174029-como-ler-arquivos-txt-no-vb6/

Quando for assim crie seu próprio tópico.

 

Estou separando seu tópico do tópico antigo.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provalvelmente da mesma for que é feito no VB6.

 

Dê uma procurada pelo fórum. Se não encontra posta ae.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pessoal e desculpa pelo encômodo, é que sou nova no fórum! E nem tinah visto a data!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pessoal e desculpa pelo encômodo, é que sou nova no fórum! E nem tinah visto a data!

 

Sem problemas, mais e ai conseguiu resolver ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pior que não! É que assim, o que eu preciso fazer é criar uma macro com o VBA do word, que ao executá-la, apareça em cima do documento um número x, e a cada vez que eu executar essa macro, esse número x aumente, de 1 em 1!

Preciso disso para fazer ofícios, e eles não podem ter todos os mesmos números, então me ajudem, pessoal! Valeu pela força.

 

 

Ex.: 001/09

 

001 é o número do ofício, que a cada vez que executar a macri irá mudar. "001, 002, 003, 004, ..."

 

09 é o ano atual, e quando chegar em 2010 deverá aparecer "001/10, 002/10", entenderam?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde entra o arquivo texto nessa história ?? :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Preciso chamar um arquivo .txt, pegar um numero x, armazenar esse número numa variável e depois mostrá-la. Se você tiver outra solução para fazer isso, me mostre também, mas preciso fazer desse jeito. =/

Muito obrigado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O seu arquivo texto vai armazenar o valor do último arquivo criado. Nesse caso além de ler você terá também que editar o arquivo.

A dica que o Gabriel deu para ler não deu certo porque?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi pessoal, me equivoquei, peço desculpas.

 

Confundi com outro Gabriel. :)

 

Sim, vi o tópico dele, mas já consegui com que funcionasse isso.

 

Vocês poderiam me ajudar a fazer o próximo passo?

Gostaria agora de fazer o que o Claudio disse acima:

"Armazenar o valor da última variável utilizada(que é um numero que estava em um arquivo txt). Nesse caso, ler e gravar qual foi o último número do txt utilizado."

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer assim.

 

-------- para ler o arquivo ------------

Dim linex As String
Dim ff As Integer
    ff = FreeFile
    Open arquivo For Input As #ff
      Line Input #ff, linex
    Close #ff

--------- para gravar --------

Dim ff As Integer
        
    strFile = <nome do arquivo>
   
    ff = FreeFile
   Open strFile For output As #ff
   Print #ff, <variavel>
    Close #ff

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já fiz isso, amigo! Muito obrigado.

Agora preciso alguma forma de "marcar" as variáveis que já foram usadas, se elas foram usadas pula para outra, se não foi mostra na tela! Me ajudem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Os valores, você quer dizer ?? Armazenando sempre o ultimo valor utilizado, voce saberá que basta incrementa-lo de um para ter o proximo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gostaria de uma solução para o meu problema. Estou trabalhando com macros do Word.

Tenho uma variável "p", quando executo essa macro pela 1ª vez p=0. Porém, quero que quando eu execute pela 2ª vez, o valor de "p" aumente + 1, assim sucessivamente. Mas sem laços de repetição.

 

1ª vez: p=0

2ª vez: p=1

3ª vez: p=2

4ª vez: p=3

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usando a idéia de gravação do arquivo. Faça duas funções, uma para ler e outra para gravar (como no codigo que passei).

 

sequencia.

 

Chama a função para Ler valor a variavel do txt

 

executar macro (que muda o valor da variavel)

 

chama a função para gravar variavel no txt com o novo valor.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Uni os dois tópicos por tratarem do mesmo assunto.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jessica conseguiu ?

O que você precisa fazer é chamar a função para Ler (ela recuperará do arquivo o valor, daí voce coloca esse valor em sua variável p, executa o código com seus comandos e terminando, chama a função para gravar, que colocará no arquivo txt o valor da variavel p, deixando atualizado para a proxima execução (se houver).

Compartilhar este post


Link para o post
Compartilhar em outros sites

http://forum.imasters.com.br/index.php?/topic/357818-como-ler-arquivos-txt-no-vba/page__view__findpost__p__1363066

 

Preciso fazer isso dentro do código, não com um arquivo externo, nem com laço de repetição. Eu quero que a 1º vez que eu execute o p=0, na 2ª vez p=1. Porém, quando eu executo pela 2º vez ele continua p=0, por que ele inicia de novo a contagem. =//

 

Entenderam? Desculpa, não estou conseguindo ser clara. =/

 

Obrigado pela ajuda de vcs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código por enquanto está assim:

 

Sub Prog()
        
        arquivo = "c:\Documents and Settings\jessicam\Meus documentos\ping.txt"
        
        n = FreeFile()        
        
        Open arquivo For Input As #n
        conteúdo = Input(LOF(n), n)
        Close #n
        
        linhas = Split(conteúdo, vbCrLf)
        última = linhas(UBound(linhas) - p)
        'p indica a linha do arquivo ping.txt: 0 = última linha, 1 = penúltima, etc
        
        
        Ucaracteres = Left(última, 3)
        'esse comando faz com que armazene os 3 primeiros caracteres do arquivo ping.txt, que no caso é 001, 002, 003; dependendo da linha.

        
        If Year(Date) = 2009 Then
            Ucaracteres2 = "09"
        ElseIf Year(Date) = 2010 Then
            Ucaracteres2 = "10"
        ElseIf Year(Date) = 2011 Then
            Ucaracteres2 = "11"
        ElseIf Year(Date) = 2012 Then
            Ucaracteres2 = "12"
        ElseIf Year(Date) = 2013 Then
            Ucaracteres2 = "13"
        End If
        

        c = Ucaracteres & "/" & Ucaracteres2
        
        Selection.TypeText Text:=c
        Selection.TypeParagraph


End Sub

 

 

 

O arquivo de texto que o código chama é o ping.txt:

 

010

009

008

007

006

005

004

003

002

001

 

Executem na máquina de vocês e testem, para entenderem melhor. :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.