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

VBA für einen Timer in Excel

Forumthread: VBA für einen Timer in Excel

VBA für einen Timer in Excel
03.06.2020 17:38:56
Jeremias
Hallo zusammen,
ich bin noch Anfänger im VBA programmieren und würde mich über jegliche Hilfe freuen! :) Ich will einen Timer in meine Excel - Datei einbauen, der bei Inaktivität anfängt zu laufen. Wenn der Timer abgelaufen (5 min) ist, soll die Datei automatisch gespeichert und geschlossen werden. Vielleicht wäre es auch sinnvoll, dass nach 3 min eine Warnung aufpoppt.
Ich habe schon alte Forum gesucht und deren Code ausprobiert aber leider hat es nicht funktioniert. Ich benutze derzeit Excel 2019. Vielleicht liegt es ja daran...
Ich wäre euch sehr sehr dankbar, wenn ihr mir helfen könnt!
Viele Grüße
Jeremias
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA für einen Timer in Excel
03.06.2020 19:28:45
volti
Hallo Jeremias,
hier mal eine Idee, wie das laufen könnte. Es sind zwei Beispiele in der anliegenden Datei, einmal über API und einmal über OnTime….
Die Inaktivität berücksichtigt Mausbewegungen und Eingaben.
https://www.herber.de/bbs/user/137994.xlsb
Schau Dir's halt mal an.
viele Grüße
Karl-Heinz
Anzeige
;
Anzeige

Infobox / Tutorial

Einen Timer in Excel mit VBA einbauen


Schritt-für-Schritt-Anleitung

Um einen Timer in Excel zu erstellen, der auf Inaktivität reagiert, kannst Du den folgenden VBA-Code verwenden. Dieser Code speichert und schließt die Excel-Datei nach 5 Minuten Inaktivität und zeigt nach 3 Minuten eine Warnung an.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Rechtsklick auf „VBAProject (DeineDatei.xlsx)“ > Einfügen > Modul.
  3. Kopiere und füge den folgenden Code in das Modul ein:

    Dim Timer As Double
    Dim InaktivitaetsZeit As Double
    Dim WarnungZeit As Double
    
    Sub StartTimer()
       InaktivitaetsZeit = 5 / 24 / 60  ' 5 Minuten
       WarnungZeit = 3 / 24 / 60        ' 3 Minuten
       Timer = Now + WarnungZeit
       Application.OnTime Timer, "ZeigeWarnung"
       Timer = Now + InaktivitaetsZeit
       Application.OnTime Timer, "SpeichernUndSchliessen"
    End Sub
    
    Sub ZeigeWarnung()
       MsgBox "Warnung: Du bist seit 3 Minuten inaktiv!", vbExclamation
    End Sub
    
    Sub SpeichernUndSchliessen()
       ThisWorkbook.Save
       ThisWorkbook.Close
    End Sub
    
    Sub StopTimer()
       On Error Resume Next
       Application.OnTime Timer, "ZeigeWarnung", , False
       Application.OnTime Timer, "SpeichernUndSchliessen", , False
    End Sub
    
    ' Stelle sicher, dass du StartTimer und StopTimer auf entsprechende Ereignisse wie Worksheet_Activate und Worksheet_Deactivate legst.
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Du kannst den Timer starten und stoppen, indem Du die Subroutinen StartTimer und StopTimer in den entsprechenden Ereignissen der Arbeitsblätter aufrufst.


Häufige Fehler und Lösungen

  • Problem: Timer funktioniert nicht.

    • Lösung: Stelle sicher, dass Du die Timer-Subroutinen in den richtigen Ereignissen des Arbeitsblatts aufrufst (z.B. Worksheet_Activate und Worksheet_Deactivate).
  • Problem: Warnung erscheint nicht.

    • Lösung: Überprüfe die Werte für InaktivitaetsZeit und WarnungZeit. Stelle sicher, dass die Zeiteinheiten korrekt sind.

Alternative Methoden

Eine alternative Methode, um einen Timer in Excel zu erstellen, ist die Verwendung von Windows API-Funktionen. Diese Methode kann komplexer sein und ist für erfahrenere Benutzer geeignet. Du kannst die API-Funktion SetTimer verwenden, um einen Timer zu erstellen, der eine Benachrichtigung bei Inaktivität sendet.


Praktische Beispiele

Hier ist ein einfaches Beispiel für das Einbauen eines Timers in Excel mit VBA:

Sub BeispielTimer()
    StartTimer
End Sub

Du kannst diese Subroutine einem Button zuweisen, um den Timer zu starten, und eine weitere Subroutine, um ihn zu stoppen.


Tipps für Profis

  • Nutze Application.OnTime für präzisere Timer-Funktionalitäten.
  • Verwalte mehrere Timer, indem Du unterschiedliche Dim-Variablen für verschiedene Timer einsetzt.
  • Teste den Code gründlich, um sicherzustellen, dass alle Möglichkeiten der Inaktivität abgedeckt sind.

FAQ: Häufige Fragen

1. Kann ich den Timer anpassen?
Ja, Du kannst die Werte für InaktivitaetsZeit und WarnungZeit im VBA-Code ändern, um die gewünschten Zeitintervalle festzulegen.

2. Funktioniert dieser Code in Excel 2019?
Ja, der Code sollte in Excel 2019 problemlos funktionieren. Stelle sicher, dass Makros aktiviert sind.

3. Wie kann ich den Timer stoppen?
Du kannst die StopTimer-Subroutine aufrufen, um den Timer zu stoppen, wenn Du aktiv am Arbeiten bist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige