Página 1 de 1

Repetir ação de botão com macro a cada 15 segundos.

Enviado: 20 Out 2018 às 22:05
por gugaclau
Senhores, boa noite!

Criei uma planilha para auxiliar meus treinos de Aikido. Ao pressionar um botão (com macro), nomes de golpes são gerados aleatoriamente em uma célula, como em um sorteio. Na verdade, a ideia é simular uma bancada de "árbitros" que pedem golpes aleatórios. Justamente por simular essa bancada, não gostaria de sempre pressionar o botão ou mesmo a tecla F9. Gostaria de uma forma de programar essa mesma macro para que fosse executada a cada 10 ou 15 segundos, é possível?

Obrigado a todos!
Gustavo

Repetir ação de botão com macro a cada 15 segundos.

Enviado: 22 Out 2018 às 10:23
por ExcelFlex
Olá, você pode utilizar a função Application.OnTime:

Código: Selecionar todos
Sub ExecutaComando()
    Debug.Print "Comando executado"
    Application.OnTime Now + CDate("00:00:05"), "ExecutaComando"
End Sub

Re: Repetir ação de botão com macro a cada 15 segundos.

Enviado: 22 Out 2018 às 18:19
por gugaclau
ExcelFlex escreveu:Olá, você pode utilizar a função Application.OnTime:

Código: Selecionar todos
Sub ExecutaComando()
    Debug.Print "Comando executado"
    Application.OnTime Now + CDate("00:00:05"), "ExecutaComando"
End Sub
Caro ExcelFlex, obrigado por responder!
Observando o comando enviado, ajustei meu comando para o copiado abaixo, porém o mesmo não atualiza mais a página, repetindo sempre o mesmo conteúdo. Você ideia do que pode estar ocorrendo? Preciso que, em cada repetição, ele continue atualizando, dando assim a impressão da escolha aleatória dos golpes...

Sub Botão1_Clique()

ActiveSheet.Calculate
Application.Speech.Speak [f8]
Application.OnTime Now + CDate("00:00:05"), [Botão1_Clique()]

End Sub

Repetir ação de botão com macro a cada 15 segundos.

Enviado: 23 Out 2018 às 10:03
por ExcelFlex
Faça a chamada assim:
Código: Selecionar todos
Sub Botão1_Clique()
    ActiveSheet.Calculate
    Application.Speech.Speak "F8"
    Application.OnTime Now + CDate("00:00:05"), "Botão1_Clique()"
End Sub

Repetir ação de botão com macro a cada 15 segundos.

Enviado: 23 Out 2018 às 16:56
por gugaclau
ExcelFlex, mais uma vez obrigado em responder!!
Quando troco as chaves [ ] por aspas " ", ele retorna o valor "efe oito", e não o conteúdo da célula F8.
O jeito mais próximo que cheguei foi como coloquei no código, utilizando as chaves, inclusive na linha abaixo...Caso contrário diz que a macro não está ativa ou na pasta...
Código: Selecionar todos
Application.OnTime Now + CDate("00:00:05"), "Botão1_Clique()"
De qualquer forma, com o código do jeito que utilizei, o problema é deixou de atualizar o conteúdo da célula em questão, e que funcionava perfeitamente através do comando abaixo...
Código: Selecionar todos
ActiveSheet.Calculate
Mais uma vez, obrigado por tentar ajudar!!

Repetir ação de botão com macro a cada 15 segundos.

Enviado: 23 Out 2018 às 19:18
por gugaclau
ExcelFlex, esqueça meu último post!! Você está certíssimo!!! O comando não encontrava o nome da macro. Refiz e deu super certo!!
Muito obrigado pela boa vontade em ajudar!!

Abçs
Gustavo