Veja neste artigo como criar um cronômetro no Excel com VBA utilizando códigos simples, baixe gratuitamente a planilha com o código pronto.
Além de uma excelente ferramenta de trabalho para recursos simples o Microsoft Excel com suas inúmeras ferramentas, funções e possibilidade de programação em VBA permite criações incríveis.
O que deixa este programa tão útil, interessante e vivo por mais de 30 anos é exatamente a sua versatilidade e capacidade de atualização.
Neste artigo vou mostrar como criar um cronômetro no Excel utilizando algumas ferramentas no ambiente Excel e códigos do VBA.
Já vi outros cronômetros feitos com maior complexidade e códigos imensos, mas este caso se destaca pela grande simplicidade.
Botões
Os botões foram criados simplesmente pelas formas do Excel, e neste caso escolhemos as cores, apliquei o efeito bisel e defini o tamanho dos botões.
Para a criação desta cronômetro será necessário três códigos no VBA e obviamente estas sub rotinas deverão estar conectadas aos eus respectivos botões.
Definição do tempo (Célula D13)
Também é preciso ter uma célula onde o tempo será definido, e neste caso é a célula d13.
A célula precisar ter o formato de hora com os 6 dígitos, pode ser digitado ou ter uma lista suspensa com opções pré definidas de tempo.
Até aqui nada demais, pois todos os recursos são muitos simples e realizados no Excel.
Códigos do cronômetro
Agora vou mostrar os três códigos necessários para o funcionamento do cronômetro, são códigos simples que farão com que o timer funcione automaticamente sem precisar de atualização da planilha.
1 – Sub Cronometro
O primeiro código é a sub cronometro, esta sub rotina cumpre o papel de definir a hora, minuto e segundo da célula D13 e utiliza a célula D15 que não precisa aparecer para concatenar os três elementos da hora.
Note que no final deste código temos o comando call utilizado para chamar outras rotinas e assim executar outras ações dentro do código primário.
Sub cronometro()
If Range("d13").Value = 0 Then
Else
newhour = Hour(Range("d13").Value)
newminute = Minute(Range("d13").Value)
newsecond = Second(Range("d13").Value) - 1
Range("d15").Value = TimeSerial(newhour, newminute, newsecond)
Range("d13").Value = Range("d15").Value
Call timer
'Chama a sub timer
End If
End Sub
2 – Sub timer
O segundo código é a sub rotina timer, é a mais simples e mais importante, pois a sub timer faz com que o cronômetro funcione automaticamente sem que o usuário tenha que ficar atualizando a planilha.
Sub timer()
Application.OnTime Now + TimeValue("00:00:01"), "Cronometro"
'Este código deixa acontagem dos segundos automático
End Sub
Outro ponto importante do código timer é que este deve ser conectado ao botão timer na tela do cronômetro.
3 – Sub encerrar
A sub encerrar também é muito simples e seu papel e parar o cronometro sempre que o usuário desejar.
Note que o código simplesmente aplica hora com valor zero fazendo com que a rotina interrompa a operação.
Sub encerrar()
Range("d13").Value = "00:00:00"
'Este é o código do botão stop
End Sub
Esta sub rotina deve ser atribuída ao botão vermelho, ou seja, o botão que paralisa o timer.
Para atribuir as macros aos botões basta clicar com o botão direito, escolher a opção atribui macros e escolher os nomes das rotinas.
Ao utilizar estes códigos e objetos indicados o funcionamento do timer sempre irá depender da inclusão do tempo para depois ser iniciado pelo botão timer, e sempre que desejado o usuário pode parar o processo pelo botão stop.
Ainda tem dúvidas de como criar um cronômetro no Excel com VBA? Saiba como fazer passo a passo pelo nosso vídeo do Canal ExcelForever no Youtube:
Espero que tenha gostado do artigo e seja muito útil, grande abraço e sucesso!