Executando uma macro a cada 'n' minutos.
Recentemente tive necessidade de utilizar um meio de executar uma rotina no Excel a cada 5 segundos. Fuçando, cheguei no Application.OnTime.
Para um exemplo simples, vou utilizar um botão para marcar o início da atividade e outro botão para marcar o fim.
Quando clicar em Iniciar, quero que uma rotina, chamada AtualizarHora seja executada a cada 3 segundos.
Clicando em Parar, quero que a rotina deixe de ser executada.
Eis os códigos:
'
' Utilizaremos uma variável pública para controlar a execução da rotina desejada.
'
Public bExecutar As Boolean
Sub Botão1_Clique()
'
' Iniciar contagem de tempo gravando a hora atual em B2. Como vamos iniciar, apagamos qualquer
' vestígio que tenha na C3 e D3
Cells(2, 2) = Time()
Cells(3, 2).Clear
Cells(4, 2).Clear
'
' Libera a execução
'
bExecutar = True
'
' Aqui é onde programamos o Excel para executar nossa rotina
'
Application.OnTime EarliestTime:=Now + TimeValue("00:00:03"), Procedure:="AtualizaHora"
End Sub
Sub AtualizaHora()
'
' Se execução estiver liberada, reprograma a rotina
'
If bExecutar Then
Application.OnTime EarliestTime:=Now + TimeValue("00:00:03"), Procedure:="AtualizaHora"
End If
Cells(3, 2) = Time() ' Grava a hora atual
Cells(4, 2) = Cells(3, 2) - Cells(2, 2) ' Apresenta quantidade de tempo já decorrido
End Sub
Sub Botão2_Clique()
'
' Parar contagem
'
bExecutar = False ' Ajusta variável de controle para falso
'
' Reprograma a rotina para ser executada imediatamente
'
Application.OnTime EarliestTime:=Now, Procedure:="AtualizaHora"
End Sub
Este blog tem como objetivo postar informações sobre soluções que eu empreguei no dia-a-dia, nas áreas de programação, banco de dados, arquitetura de sistemas e redes. Vale lembrar que são soluções publicadas na NET, nos manuais dos softwares, e nas minhas experiências, afinal, são 31 anos de estrada...
sexta-feira, 23 de setembro de 2016
Assinar:
Postagens (Atom)
Formatar texto numérico com zeros à esquerda
Sempre aparace uma necessidade de colocar zeros à esquerda em textos que representam números. Exemplo clássico é transformar o número que ...
-
Session-State Fonte: http://forums.asp.net/p/7504/7504.aspx#7504 1-Localização do armazenamento: InProc – a sessão é m...
-
Sempre aparace uma necessidade de colocar zeros à esquerda em textos que representam números. Exemplo clássico é transformar o número que ...