VBA Criar um timer em um segundo

Outubro 2017


No VBA, não existe (que eu saiba) o componente Timer.
Mas, é possível criá-lo, bem facilmente.

Em um módulo de planilha


Ativar/Desativar o timer : Colocar um botão na Plan1 e inserir o código...
Private Sub CommandButton1_Click()    
    TimeOnOFF = Not TimeOnOFF    
    If TimeOnOFF Then    
        Smem = 0    
        Timer    
    End If    
End Sub

Em um módulo público


Public TimeOnOFF As Boolean    
Public Smem As Integer    

Sub Timer()    
Dim VV    
    If TimeOnOFF Then    
        'Por o código aqui, para ser executado todos os segundos    
        Smem = Smem + 1    
        If Smem = 1 Then    
            Sheets("feuil1").[C1] = Time    
        ElseIf Smem = 2 Then    
                'Por o código aqui, para ser executado todos os 2 segundos   
            Sheets("plan1").[C1] = Replace(Time, ":", " ")    
            Smem = 0    
        Else    
            Smem = 0    
        End If    
        VV = TimeSerial(Hour(Time), Minute(Time), Second(Time) + 1)    
        Application.OnTime VV, "timer", False    
    End If    
End Sub


Observação: O "sub" exibe a hora com/sem os dois pontos de separação, para evitar o movimento do texto na célula, por a fonte @Arial Unicode MS.


Tradução feita por Lucia Maurity y Nouira

Veja também

Artigo original publicado por lermite222. Tradução feita por pintuda. Última modificação: 3 de março de 2011 às 14:35 por pintuda.
Este documento, intitulado 'VBA Criar um timer em um segundo ', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.