Jump to content

[AJUDA] Modificar macro que gera arquivo texto.


Wata

Recommended Posts

Tenho uma macro que gera um arquivo texto, porém toda vez que é acionada sobrescreve o arquivo.

Gostaria que cada vez que a macro fosse acionada, gerasse um arquivo texto na sequência (Arquivo1.txt; Arquivo2.txt...).

Alguém aí consegue fazer a modificação???

 

 

Sub GravarArquivoTxt()

    Open Range("N3").Value For Output As 1
        
    Range("O9").Select
    
    Do While ActiveCell.Value <> ""
        Print #1, ActiveCell.Value
        Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
    Loop
        
    MsgBox "Arquivo gerado com sucesso!", vbInformation, "Ok"
    Close 1

End Sub

 

 

Explicando a macro:

Na célula N3 é necessário colocar o endereço e nome do arquivo, por exemplo C:/Arquivo.txt

Tudo que estiver na coluna O, a partir da célula O9(inclusive) vai entrar no arquivo texto.

 

 

Obrigado.

8-)

...

 

 

  • Like 1
Link to comment
Share on other sites

30 minutos atrás, Wata disse:

Alguém aí consegue fazer a modificação???

 Sub GravarArquivoTxt()
  Dim i As Integer

    Open Range("N3").Value & Range("O3").Value & ".txt" For Output As 1
    i = Range("O3").Value + 1
    Range("O3").Value = i
    Range("O9").Select
    
    Do While ActiveCell.Value <> ""
        Print #1, ActiveCell.Value
        Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
    Loop
        
    MsgBox "Arquivo gerado com sucesso!", vbInformation, "Ok"
    Close 1

End Sub

 

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

11 minutos atrás, FF882007 disse:

 Sub GravarArquivoTxt()
  Dim i As Integer

    Open Range("N3").Value & Range("O3").Value & ".txt" For Output As 1
    i = Range("O3").Value + 1
    Range("O3").Value = i
    Range("O9").Select
    
    Do While ActiveCell.Value <> ""
        Print #1, ActiveCell.Value
        Cells(ActiveCell.Row + 1, ActiveCell.Column).Select
    Loop
        
    MsgBox "Arquivo gerado com sucesso!", vbInformation, "Ok"
    Close 1

End Sub

 

 

8 minutos atrás, FF882007 disse:

em N3 coloque  c:\arquivo sem ".txt"

 

Funcionando perfeitamente!

Valeu.

8-)

...

Link to comment
Share on other sites

  • 2 months later...

Estou com problemas com essa macro de gravar txt.

 

O que estou fazendo é gerar algumas linhas aleatórias e para ficar atualizando essas linhas utilizo a macro abaixo:

 

Sub ATUALIZAR()
'
' ATUALIZAR Macro
'

'
    Range("A1").Select
    ActiveCell.FormulaR1C1 = ""
    Range("A2").Select
End Sub

 

 

Após isso aciono essa macro para gravar o txt.

 

O problema é que quando aciono a macro para gravar o txt as linhas que foram geradas aleatoriamente são atualizadas e só após isso é salvo o txt .

Preciso que quando acione a macro gravar o txt, não atualize as linhas.

As linhas só devem ser atualizadas quando acionada essa macro (acima) ATUALIZAR.

 

Alguém sabe como resolver?

Obrigado

8-)

...

 

 

Link to comment
Share on other sites

@Pedepano

 

O que eu quero é, a cada vez que a macro ATUALIZAR for acionada,  gerar uma linha (matriz) de 25dz. com arranjo aleatório.

Essa matriz irá formar um desdobramento e caso esse desdobramento gere uma condição específica (uma linha do desdobramento com um atraso de, por exemplo, 100 ou mais concursos; veja isso ), será acionada a macro GravarArquivoTxt, e o desdobramento todo será salvo em txt.

 

Quero gerar arquivos txt somente quando uma linha muito atrasada (do desdobramento) aparecer.

 

Na solução que vc apresentou, pelo que eu entendi, cada processo vai gerar um arquivo txt...

 

8-)

...

 

 

Link to comment
Share on other sites

21 minutos atrás, Wata disse:

Quero gerar arquivos txt somente quando uma linha muito atrasada (do desdobramento) aparecer.

@WataBoa noite

 

é preciso chamar a função "GravarArquivoTxt()" quando identificar o atraso. Ex  em vermelho no spoiler

 

Em 03/03/2021 em 23:07, Wata disse:

Sub ATUALIZAR()
'
' ATUALIZAR Macro
'

'
    Range("A1").Select
    ActiveCell.FormulaR1C1 = ""
    Range("A2").Select

 

 

if "celula com a quantidade de atrazo" >= 100 then

 

call  GravarArquivoTxt()

end if

 


End Sub

 

boa sorte

  • Thanks 1
Link to comment
Share on other sites

@Pedepano  @FF882007

 

 

Vcs estão muitos passos a minha frente.

Estão fazendo tudo direto  e somente com o EXCEL.

Confesso que nem tinha pensado nessa possibilidade...

Junto com o EXCEL estou utilizando um programa chamado JITBIT-MACRORECORDER.

Esse programa grava tudo que vc faz com o mouse, e permite algumas comparações (de imagens, etc).

Depois é só executar isso e deixar reproduzindo no automático até achar o que vc procura.

 

Vou ver o que consigo aqui...

Valeu.

 

8-)

...

 

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...