Página 1 de 1

Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 18 Mar 2019 às 14:48
por Wieniawski
Srs, existe algum comando que repita a execução da macro caso o conteúdo de uma célula seja diferente de outra? Ou seja:

célula A1 = 18/03/2019
célula A2 = 17/03/2019

No caso acima, a execução é repetida até que A2 fique igual a A1

Re: Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 18 Mar 2019 às 22:10
por osvaldomp
Código: Selecionar todos
Sub Teste()
 If [A1] = [A2] Then Exit Sub
 'coloque aqui o seu código
End Sub

Re: Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 19 Mar 2019 às 06:36
por Jimmy
Olá,

Suponho que a macro irá alterar o conteúdo de A1 e A2 até que eles fiquem iguais, porque se não o fizerem, a macro pode entrar em loop.

Para evitar o loop, é bom estipular um limite de execuções dentro do qual espera-se que as células estejam iguais.

No exemplo abaixo, o limite é 1000, mas você é quem tem que determinar esse número.
Código: Selecionar todos
Sub Repete()
Limite = 1000
For Qtd = 1 To Limite
    If Cells(1, "A").Value = Cells(2, "A").Value Then Exit For
   'Insira aqui a rotina que altera A1 e/ou A2
Next
If Qtd = Limite + 1 Then MsgBox "A macro já executou " & Limite & _
                                " vezes e não conseguiu igualar as células."
End Sub
Jimmy San Juan

Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 19 Mar 2019 às 06:59
por Jimmy
Complementando...

Você não deu detalhes do seu problema, mas pode ser que recursos como Solver ou Atingir meta resolvam o seu problema sem a necessidade de macro.

Se postar a planilha poderemos definir isso melhor.

Jimmy San Juan

Re: Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 19 Mar 2019 às 12:50
por Wieniawski
Obrigado srs pela pronta resposta!

Na verdade eu precisaria de um comando que fizesse este loop até que a condição seja atendida. Me desculpem não poder postar a planilha aqui.

Mas vou tentar descrever em mais detalhes:

Esta planilha puxa uma lista de NFs do SAP e converte em excel.

Na célula A1 tem uma fórmula "=hoje()".

Na célula A2 está a última data da relação de NFs, ou seja, se a relação de NFs for de 01/03/2019 a 15/03/2019, na célula A2 estará 15/03/2019

Neste caso, minha condição não estará atendida, então preciso que a macro seja acionada novamente sem que eu tenha que fazer isso manualmente.

Abraços!

Re: Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 19 Mar 2019 às 16:35
por osvaldomp
Código: Selecionar todos
Sub TesteV2()
 Do Until [A1] = [A2]
  'coloque aqui o seu código
 Loop
End Sub

Re: Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 20 Mar 2019 às 09:11
por Wieniawski
Infelizmente não deu certo :cry:

Será que daria certo uma condição IF no final dizendo que se A2<A1 ele faz o loop?

Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 20 Mar 2019 às 09:59
por Jimmy
Dê detalhes do que quer dizer "Não deu certo".
Porque não funcionou? O que aconteceu? Deu erro de sintax? Rodou um número insuficiente de vezes? Não rodou nenhuma vez? Rodou e não parou nunca?

O loop é refeito sempre que as células A1 e A2 forem diferentes, tanto no código do Osvaldo quanto no meu. O que falta é melhor definição do probleme, dos objetivos e do resultado dos testes.

Jimmy San Juan

Re: Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 20 Mar 2019 às 10:23
por Wieniawski
Jimmy, não rodou nenhuma vez e não deu mensagem de erro.

Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 20 Mar 2019 às 10:42
por Jimmy
Explique com detalhes o processo pelo qual você inseriu o código que te passamos, na planilha, e como fez para executa-lo.

Jimmy San Juan

Re: Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 20 Mar 2019 às 12:09
por osvaldomp
Wieniawski escreveu:Infelizmente não deu certo :cry:
Enquanto você não disponibilizar uma amostra do seu arquivo Excel com os códigos existentes e a explicação exata do você quer, ficamos restritos a um joguinho de adivinhação.

Re: Repetir uma macro de acordo com o conteúdo de uma célula

Enviado: 21 Mar 2019 às 13:35
por Wieniawski
Infelizmente não terei como disponibilizar, pois esta planilha roda com scripts do SAP, e não sei como fazer uma amostra sem isso, mas agradeço a ajuda dos senhores assim mesmo!

abç!