Ciao Camelon.
Nel tuo codice manca la dichiarazione della variabile NumSecondi, che devi scegliere Static perchè altrimenti non s'incrementerebbe mai.
Visto che il formato deve essere HH:MM:SS, potresti usare la format per avere una stringa lunga 2 caratteri (2 secondi = 02 secondi).
Quindi potresti anche non utilizzare nessuna variabile per secondi minuti e ore, visto che vengono utilizzate solamente per "copiare" il risultato.
codice:
Private Sub Timer1_Timer()
Dim Ore, Minuti, Secondi, Resto As Integer
Dim Tempo As String
Static NumSecondi As Long
NumSecondi = NumSecondi + 1
Ore = Int(NumSecondi / 3600)
Resto = NumSecondi - (Ore * 3600)
Minuti = Int(Resto / 60)
Secondi = Resto - (Minuti * 60)
Tempo = Format(CStr(Ore), "0#") & ":" & _
Format(CStr(Minuti), "0#") & ":" & _
Format(CStr(Secondi), "0#")
Label1.Caption = Tempo
Label1.Refresh
End Sub
Siccome però devi poter azzerare il conteggio, devi dichiarare pubblica la variabile NumSecondi e azzerarla nell'evento Click di un tasto.