VBA Criar um timer em um segundo

Julho 2016


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 :
Este documento, intitulado « VBA Criar um timer em um segundo  »a partir de CCM (br.ccm.net) está disponibilizado sob a licença Creative Commons. Você pode copiar, modificar cópias desta página, nas condições estipuladas pela licença, como esta nota aparece claramente.