Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Arbeitsmappe alle 5 Minuten neu berechnen

Gruppe

OnTime

Problem

Wie kann ich eine Arbeitsmappe alle 5 Minuten neu berechnen lassen?

Lösung
Die nachfolgenden Makros in die genannten Module einfügen.

ClassModule: DieseArbeitsmappe

Private Sub Workbook_BeforeClose(Cancel As Boolean)
   On Error Resume Next
   Call BerechnenStop
   Application.Calculation = gvar
End Sub

Private Sub Workbook_Open()
   gvar = Application.Calculation
End Sub

StandardModule: basMain

Public Const ciIntervall As Integer = 10
Public Const dsMacro As String = "Berechnen"
Public gdNextTime As Double
Public gvar As Variant

Sub BerechnenStart()
   Application.Calculation = xlManual
   gdNextTime = Now + TimeSerial(0, 0, ciIntervall)
   Application.OnTime gdNextTime, dsMacro
End Sub

Sub Berechnen()
   Application.Calculate
   Call BerechnenStart
End Sub

Sub BerechnenStop()
   On Error Resume Next
   Application.OnTime earliesttime:=gdNextTime, _
      procedure:=dsMacro, schedule:=False
   Application.Calculation = gvar
End Sub