Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Zeit in vorgegebenem Intervall hochzählen

Gruppe

OnTime

Problem

Die Zeit in Zelle B1 soll im Sekunden-Intervall um die in Zelle E1 genannten Minuten hochgezählt werden.

Lösung
Geben Sie den nachfolgenden Code in ein Standardmodul ein und weisen Sie ihn einer Schaltfläche zu.

StandardModule: basMain

Public Const gsMacro As String = "UpdateClock"
Public gdNextTime As Double

Sub StartClock()
   Dim iIntervall As Integer
   iIntervall = Range("E1").Value
   gdNextTime = Now + TimeSerial(0, 0, 1)
   Application.OnTime earliesttime:=gdNextTime, _
      procedure:=gsMacro, schedule:=True
End Sub

Sub UpdateClock()
   Dim wks As Worksheet
   Range("B1").Value = Range("B1").Value + _
      TimeSerial(0, Range("E1").Value, 0)
   Call StartClock
End Sub

Sub StopClock()
   On Error Resume Next
   Application.OnTime earliesttime:=gdNextTime, _
      procedure:=gsMacro, schedule:=False
End Sub

ClassModule: DieseArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   Call StopClock
End Sub