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

Você que que a cada vez que execute a rotina o arquivo fique com apenas UM numero certo?

 

 

Depois que abrir o arquivo, coloque

 

Kill <caminho_do_arquivo_aqui>

Isso vai fazer com que o seu aquivo seja excluído. Assim, quando você for gravar ele, será criado um novo sem texto algum.

 

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não, amigo. Eu quero que a cada vez que eu execute o código, aquela variável "p" some + 1.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cria uma macro com isso.

 

 

If (ActiveDocument.Variables.Count = 0) Then
    ActiveDocument.Variables.Add "Soma", 0
End If
ActiveDocument.Variables(1).Value = ActiveDocument.Variables(1).Value + 1

MsgBox ActiveDocument.Variables(1)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi scorpio, você entendeu o que eu preciso fazer. :D

Mas quando eu fecho o word, inicio novamente e executo a macro, o valor começa com zero de novo!

Preciso fazer com que eu feche o word, reinicie o pc e mesmo assim, não zere de novo a variável.

Se alguém puder me ajudar, agradeço!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você salvou ?

 

Eu executei, salvei e abri de novo ele começou de onde parou.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Salvei, mas quando abro um novo documento, ele inicia no 0 de novo!

Oi, amigo, achei um jeito mais fácil de fazer, que será mais prático pra quem usar e não entende de vba! :)

 

Acompanhe:

 

- Num arquivo .txt tem um valor 1

- Eu chamo o arquivo .txt e salvo esse número 1 em uma variável "a"

- Depois que o código executar tudo, lá no final ele soma + 1 na variável "a"

a = a + 1

- Agora, quero salvar o novo valor da variável "a" lá naquele arquivo .txt, no lugar do número 1 ficará 2.

- Então, depois que eu executar de novo a macro, ele chamará o .txt, e ele terá o valor de 2, ao invés de 1. E assim, sucessivamente.

 

Entendeu meu raciocínio??

 

Você pode me ajudar a salvar o novo valor da variável "a" lá naquele arquivo .txt?

 

Brigadão pelo apoio!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui pessoal, meu código ficou assim:

 

Sub ModeloDeOfício()

Arquivo = "c:\Documents and Settings\jessicam\Meus documentos\ola.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) - 1)

'1 indica a linha do arquivo ola.txt

 

 

a = Left(última, 50)

'esse comando faz com que armazene os 50 primeiros caracteres do arquivo ola.txt

 

 

If Year(Date) = 2009 Then

b = "09"

ElseIf Year(Date) = 2010 Then

b = "10"

ElseIf Year(Date) = 2011 Then

b = "11"

ElseIf Year(Date) = 2012 Then

b = "12"

ElseIf Year(Date) = 2013 Then

b = "13"

End If

'quando na data do sistema for 2009, aparecerá 09...

 

Selection.TypeText Text:=a & "/" & b

Selection.TypeParagraph

 

 

FF = FreeFile

Arquivo = "c:\Documents and Settings\jessicam\Meus documentos\ola.txt"

n = FreeFile()

Open Arquivo For Output As #FF

Print #FF, a + 1

Close #FF

 

End Sub

 

 

O arquivo ola.txt contém no início o numero 1. O código pega esse número, mostra na tela, aumenta para 2 e guarda novamente no arquivo .txt, assim sucessivamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Que bom que conseguiu Jessica, parabéns.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, pessoal. Tenho mais um "desafio", agora.

 

Achei que tinha escapado! heheheh

 

Quando mudar o ano, preciso que o número comece de novo, desde o 1. =//

 

1º tenho que colocar todo o código dentro de cada if do ano:

...

ElseIf Year(Date) = 2010 Then

'código aqui dentro...

 

À 1ª vista, pensei em colocar um while(dentro do if) que repita uma vez só.

Esse while iria abrir o arquivo ola.txt e editar o texto para "1", de novo.

E o resto continuaria a mesma coisa. Porém, não consigo fazer um while que repita uma vez só. Me ajudem de novo, pessoal. Obrigado por tudo! VALEU!

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.