Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wenn letzteEingabe länger her als 3 Min., dann...

Forumthread: Wenn letzteEingabe länger her als 3 Min., dann...

Wenn letzteEingabe länger her als 3 Min., dann...
15.08.2006 13:22:56
stefanseevetal
Hallo!
Ich möchte es bei meiner Excel-Arbeitsmappe so machen, dass ein Makro ausgeführt wird, wenn eine bestimmte Zeit lang nichts mehr gemacht wurde (keine Eingaben mehr getätigt wurden). Ich habe mich über die OnTime-Application schon schlau gemahct, aber ich weiß leider immer noch nicht, wie ich es hinbekommen kann, dass das Makro z.B. 3 Minuten nachdem die letzte Eingabe erfolgt ist, ausgeführt wird.
Gibt es da vielleicht irgendeine Anweisung bzw. eien befehl, der das abfragen kann:
So in der Art:
If letzteEingabe länger her als 3 Minuten Then...
Vielleicht kann mir jemand weiterhelfen?! Würde mich freuen,
Danke und Gruß,
Stefan
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn letzteEingabe länger her als 3 Min., dann...
15.08.2006 13:30:42
Klaus
Hallo Stefan,
lass die Tabelle speichern/schließen wenn 3 Minuten keine Eingabe gemacht wurde, aber
setzt bei jeder Eingabe (Worksheet-Change Ereigniss) den Timer wieder auf null.
Frage noch offen, weil ich nicht sicher bin ob das so auch funktioniert :)
Gruß,
Klaus M.vdT.
AW: Wenn letzteEingabe länger her als 3 Min., dann
15.08.2006 13:33:41
Josef
Hallo Stefan!
Ein Ansatz.
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Activate()
StartTimer
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
StopTimer
End Sub


Private Sub Workbook_Deactivate()
StopTimer
End Sub


Private Sub Workbook_Open()
StartTimer
End Sub


Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
LastEventTime = Now
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
LastEventTime = Now
End Sub


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public RunWhen As Double
Public LastEventTime As Double
Public Const cRunIntervalSeconds = 180 ' Intervall in Sekunden
Public Const cRunWhat = "The_Sub"

Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
  schedule:=True
End Sub


Sub The_Sub()

If LastEventTime < Now - TimeSerial(0, 0, cRunIntervalSeconds) Then
  MsgBox "HEY!" & Space(100) & vbLf & vbLf & "Nicht pennen, arbeiten!", 48, "Hinweis"
End If

StartTimer

End Sub


Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, _
  procedure:=cRunWhat, schedule:=False
End Sub


Gruß Sepp

Anzeige
Super, Danke
15.08.2006 13:56:42
stefanseevetal
Moin Ihr beiden!
Vielen Dank für Eure Unterstützung. So sollte ich das hinbekommen!
Gruß,
stefanseevetal
;

Forumthreads zu verwandten Themen

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige