Solucionado (ver solução)
Solucionado
(ver solução)
7
respostas

Temporizador no Excel/VBA

Bom dia, amigos!

Estou fazendo uma apresentação de resultados contínuos no Excel com várias planilhas que são atualizadas a cada segundo para passar em um monitor na empresa.

Porém são 6 "sheets", eu gostaria de que a cada 20 segundos, troca-se de aba automaticamente no monitor, tem como fazer isso?

Obrigado!

7 respostas

Comando para isso é algo como:

Sheets("planilha 1").Select

Mas qual é o código para esperar 20 segundos antes de trocar de planilha?

solução!

Aí é um pouco mais de código. Considere que você tem uma função que chama MudaFoco que faz a mudança como você quer. Ai basta fazer, se for de 5 em 5 minutos:

proximoHorario = Now + TimeValue("00:05:00")
Application.OnTime proximoHorario, "MudarFoco"

Então a função "MudarFoco" fica trocando de sheet, né? Então eu teria que criar uma função e passar como parâmetro o nome da sheet, e lá na funcão eu digo:

Sheets("Planilha").Select

Aí no programa principal eu poderia fazer algo como isso:

proximoHorario = Now + TimeValue("00:05:00")
Application.OnTime proximoHorario, "MudarFoco(Planilha1)"
Application.OnTime proximoHorario, "MudarFoco(Planilha2)"
Application.OnTime proximoHorario, "MudarFoco(Planilha3)"

Posso fazer isso? Só vou conseguir testar amanhã no trabalho, aí digo aqui se funcionou.

Obrigado pela resposta, Paulo, é uma honra que você tenha me respondido.

Parabéns pelos Podcasts :D

oi Eduardo! É isso mesmo que eu imagino que seja o código necessário. Talvez sejam necessários os parênteses para o OnTime(...)

Amanhã vou testar no trabalho e dou o feedback se funcionou. Muito obrigado, Paulo! :D

Paulo, era isso mesmo, muito obrigado :D