Usuário com melhor resposta
Exportar Arquivos de texto (.txt) do VBA

Pergunta
-
Como faço para exportar um arquivo de texto do VBA para um arquivo já existente do bloco de notas? é que estpu usando o bloco de notas como banco de dados ai por queria exportar um dado do VBA para o arquivo já existente, mas isso consistiria em substituir apenas uma linha do bloco de notas sem alterar as outras que já existem, será que isso é possivel? Alguém por favor pode me ajudar?
exemplo do que estaria no bloco de notas, e eu gostaria de alterar somente o item 003 sem mexer nos outros:
001 Thiago 10Xcalças
002 Fabio 5Xcalças
003 Carlos 11Xcalças
.
.
.
385 Roberto 8 calças
*detalhe para o sistema ficar rápido não quero importar o arquivo todo para o excel e edita-lo e depois exporta-lo corrigido, quero fazer a alteração direta no bloco de notas.
Respostas
-
Boa Tarde,
espero que o código abaixo ajude...
Sub SalvarLog() Dim i As Integer Dim path As String, arquivo As String Dim LogCompleto As String LogCompleto = Trim$(Application.UserName & " " & Now & " " & ActiveSheet.Name) path = "c:\logs\" Close #1 Close #2 arquivo = path & "Log.txt" Open arquivo For Append As #1 Print #1, LogCompleto End Sub
SE você substituir o comando APPEND por OUTPUT o excel substitui todo o arquivo dentro do txt por um novo, já o append
adiciona dados em uma nova linha
- Sugerido como Resposta Julio ArrudaMVP sábado, 23 de abril de 2011 20:49
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 16:04
Todas as Respostas
-
Thiago,
Segue um exemplo bem tosco. Acredito que a lógica não vá atender totalmente ao que você precisa, mas pelo menos já dá para manipular o arquivo de texto sem importá-lo todo na planilha.
Adicionar Referência ao Microsoft Scripting Runtime:
Sub arquivo_texto() Dim fso As New FileSystemObject Dim txt As TextStream Dim aux As String Dim arquivo As String arquivo = "" aux = "" Set txt = fso.OpenTextFile("c:\Arquivo.txt", ForReading, False) While Not txt.AtEndOfStream aux = txt.ReadLine If Left(aux, 3) = "001" Then aux = Left(aux, 3) & " " & "João das calças" & " 300xcalças" End If arquivo = arquivo & aux & vbNewLine Wend txt.Close Set txt = fso.OpenTextFile("c:\Arquivo.txt", ForWriting, False) txt.Write arquivo txt.Close End Sub
-
Boa Tarde,
espero que o código abaixo ajude...
Sub SalvarLog() Dim i As Integer Dim path As String, arquivo As String Dim LogCompleto As String LogCompleto = Trim$(Application.UserName & " " & Now & " " & ActiveSheet.Name) path = "c:\logs\" Close #1 Close #2 arquivo = path & "Log.txt" Open arquivo For Append As #1 Print #1, LogCompleto End Sub
SE você substituir o comando APPEND por OUTPUT o excel substitui todo o arquivo dentro do txt por um novo, já o append
adiciona dados em uma nova linha
- Sugerido como Resposta Julio ArrudaMVP sábado, 23 de abril de 2011 20:49
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 14 de junho de 2014 16:04