Office: Timer

Helfe beim Thema Timer in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hey Ihr Schlauen, ich würd gern einen Timer in die Tabelle einfügen. Weiß jemand wie das geht, sodass ich den Timer immer wieder neu einstellen... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Mace_As, 28. Februar 2009.

  1. Mace_As Neuer User

    Timer


    Hey Ihr Schlauen,

    ich würd gern einen Timer in die Tabelle einfügen. Weiß jemand wie das geht, sodass ich den Timer immer wieder neu einstellen kann??? Gibt es dafür eine Formel??? Kann ich eine Zeit z. B. 5 Stunden eingeben und dann die Zeit herunterlaufen lassen??? Hab Excel 2007.

    Mit freundlichen Grüßen

    Marcel
     
    Mace_As, 28. Februar 2009
    #1
  2. miriki Erfahrener User
    Von "alleine" runterlaufen lassen geht wohl nicht ohne VBA. Ein Ansatz sonst wäre vielleicht:

    * in A1 eine Alarm-Zeit einstellen, also z.B. 02.03.2009 12:34:56

    * in B1 die Formel
    Code:
    =WENN(JETZT()<A1;"running...";"ALARM!!!")
    * in C1 dann vielleicht noch, um den Countdown zu sehen:
    Code:
    =WENN(JETZT()<A1;A1-JETZT();"...")
    Zellenformat dort auf [h]:mm:ss stellen!

    So hast Du einen Countdown und eine Alarm-Anzeige, die sich allerdings auch immer nur bei Neuberechnung des Blatts aktualisiert.

    Der umgekehrte Weg, eine Zeit einzutragen und diese dann sekündlich herunterzuzählen, wird mit Formeln schwierig. Da wird man wohl mit VBA heran müssen, schätze ich mal.

    Gruß, Michael
     
    miriki, 2. März 2009
    #2
  3. miriki Erfahrener User
    Ein Ansatz wäre vielleicht folgender Code im Tabellenblatt:
    Code:
    Option Explicit
    
    'Namen definieren für folgende Felder:
    'TimerStop: A5
    'TimerStatus: B5
    'TimerDuration: C5 <-- Eingabe der Timer-Dauer
    'TimerStart: D5
    
    Dim TimerOriginal As Date
    Dim TimerActive As Boolean
    
    Private Sub TimerShow(s1 As Worksheet)
    
        Dim timact As Date
        Dim timstp As Date
        Dim timdur As Date
    
        'wenn der Timer läuft, dann...
        If TimerActive Then
    
            'aktuellen Zeitpunkt in timact speichern
            timact = Now()
    
            'Endpunkt des Timers in timstp speichern
            timstp = s1.Range("TimerStop").Value
    
            'Restdauer des Timers in timdur berechnen
            'wenn der Endpunkt noch in der Zukunft liegt, dann...
            If timstp > timact Then
    
                'Restdauer berechnen
                timdur = timstp - timact
    
              Else
    
                'Restdauer ist 0, damit sie nicht negativ wird
                timdur = 0
    
            End If
    
            'aktuellen Status des Timers anzeigen
            'Restdauer des Timers auf dem Blatt anzeigen
            s1.Range("TimerDuration").Value = timdur
            'Wenn der Timer noch nicht auf 0 ist, dann...
            If timdur > 0 Then
    
                'Status "running..." auf dem Blatt anzeigen
                s1.Range("TimerStatus").Value = "running..."
                'TimerActive = True
    
              Else
    
                'Status "ALARM!!!" auf dem Blatt anzeigen
                s1.Range("TimerStatus").Value = "ALARM!!!"
                'Timer deaktivieren
                
                TimerActive = False
    
            End If
    
        End If
    
        B_TimerStart.Enabled = Not TimerActive
        B_TimerStop.Enabled = TimerActive
        B_TimerReset.Enabled = (Not TimerActive) And (TimerOriginal > 0)
    
    End Sub
    
    Private Sub B_TimerReset_Click()
    
        Dim s1 As Worksheet
        Dim timdur As Date
    
        Set s1 = ActiveSheet
    
        'Wenn bereits ein Wert abgespeichert ist, dann...
        If TimerOriginal > 0 Then
    
            'Backup des Timer-Werts holen und auf dem Blatt anzeigen
            timdur = TimerOriginal
            s1.Range("Timerduration").Value = timdur
    
          Else
    
            'Timer-Wert löschen
            s1.Range("Timerduration").ClearContents
    
        End If
    
    End Sub
    
    Private Sub B_TimerStart_Click()
    
        Dim s1 As Worksheet
        Dim timact As Date
        Dim timdur As Date
        Dim timstp As Date
    
        Set s1 = ActiveSheet
    
        'TimerActive = False
    
        'aktuellen Zeitpunkt in timact speichern und auf dem Blatt anzeigen
        timact = Now()
        s1.Range("TimerStart").Value = timact
    
        'Dauer des Timers in timdur und TimerOriginal (für Reset) speichern
        timdur = s1.Range("TimerDuration").Value
        TimerOriginal = timdur
    
        'Endpunkt des Timers in timstp berechnen und auf dem Blatt anzeigen
        timstp = timact + timdur
        s1.Range("TimerStop").Value = timstp
    
        'Timer aktivieren und aktualisieren
        TimerActive = True
        TimerShow ActiveSheet
    
    End Sub
    
    Private Sub B_TimerStop_Click()
    
        'Timer deaktivieren und aktualisieren
        TimerActive = False
        TimerShow ActiveSheet
    
    End Sub
    
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
        'Timer aktualisieren
        TimerShow ActiveSheet
    
    End Sub
    Bitte die ersten Zeilen nach "Option Explicit" beachten!

    Dann brauchst Du noch aus der Symbolleiste "Steuerelemente-Toolbox" 3 Buttons auf dem Blatt, die die Namen
    B_TimerStart
    B_TimerStop
    B_TimerReset
    erhalten. Mit "Start" kann der Timer gestartet werden und zählt die Zeit herunter. Dabei wird Start-Zeitpunkt, End-Zeitpunkt und die Rest-Dauer angezeigt, wenn der Cursor die Zelle wechselt. Mit "Stop" kann der Timer wieder abgeschaltet werden und mit "Reset" kann der vorherige Wert für die Timer-Dauer wiederhergestellt werden.

    Dieser Timer aktualisiert sich jetzt zumindest bei jeder Cursor-Bewegung. Das hält die Last noch so gering wie möglich. Alternativ könnte man in einer Schleife den Timer aktualisieren, bis der End-Zeitpunkt erreicht ist. Normales Bearbeiten müßte man dann mit DoEvents zulassen. Aber zu der Lösung würde ich nur im absoluten Notfall raten.

    Selbst das "SelectionChange" Ereignis hat so seine Tücken, weswegen ich es so selten wie möglich benutze. Versuch mal, mit Strc-C etwas zu kopieren und woanders mit Strg-V wieder einzufügen... Bei laufendem Timer wird sogar die "Rückgängig"-Funktion von Excel außer Kraft gesetzt, was im Zweifelsfall ja auch recht fatal sein könnte.

    Vielleicht wäre das "Calc" oder "Change" Ereignis noch besser geeignet, aber die werden i.a. noch seltener als "SelectionChange" aufgerufen und der Timer würde entsprechend noch seltener aktualisiert.

    Gruß, Michael
     
    miriki, 2. März 2009
    #3
  4. Mace_As Neuer User

    Timer

    oke danke und wie kann ich den code einfügen?
     
    Mace_As, 2. März 2009
    #4
  5. miriki Erfahrener User
    Die vielleicht einfachste Methode: Wenn Du die 3 Buttons auf dem Blatt platziert hast, bist Du im "Entwicklungs" Modus. Wenn Du dann die rechte Maustaste auf einem dieser Buttons klickst und "Code anzeigen" wählst, bist Du schon direkt im richtigen Fenster. Mit Strg-A und Entf kannst Du den dann dort stehenden Code löschen und komplett durch den aus meinem Posting ersetzen.

    Ansonsten kannst Du auch über das Menü "Extras - Makro - Visual Basic Editor" oder den dort auch angezeigten Hotkey Alt-F11 in den Code-Editor gelangen. Dann mußt Du allerdings ggf. noch über den Projekt-Explorer (Strg-R) den Code für das entsprechende Blatt auswählen.

    Vergiß nicht, über rechte Maustaste "Eigenschaften" auf den 3 Buttons die richtigen Namen (siehe oben) zu vergeben, sonst funktioniert der Code nicht.

    Gruß, Michael
     
    miriki, 3. März 2009
    #5
Thema:

Timer

Die Seite wird geladen...
  1. Timer - Similar Threads - Timer

  2. Seit O365 Problem mit Callback-Funktion

    in Microsoft Excel Hilfe
    Seit O365 Problem mit Callback-Funktion: Hallo Excel-Gemeinde, seit der Umstellung auf das aktuelle Excel 365 funktioniert unten angegebener Code nicht mehr, sobald die Callback-Funktion in ein eigenes Modul gepackt wird. Der Code (es...
  3. Zeitstempel aus Stoppuhr bei Notizen

    in Microsoft Word Hilfe
    Zeitstempel aus Stoppuhr bei Notizen: Moin, lange gesucht und nichts gefunden, deshalb hier der Versuch: Ich will bei meinen Notizen einen Zeitstempel haben, der sich nicht an der eigentlich Zeit orintiert, sondern an einer Stoppuhr....
  4. DateTimePicker

    in Microsoft Excel Hilfe
    DateTimePicker: Hallo, gibt es eine offizielle Lösung für das Thema DateTimePicker auf UserForm für Office365? In unserer Firma wurde Office 365 installiert. Bei den Steuerelementen ist unter den...
  5. Zwei unterschiedliche Timer Intervalle

    in Microsoft Access Hilfe
    Zwei unterschiedliche Timer Intervalle: Hallo ich möchte auf einem Formular zwei Aktionen über einen Timer ausführen. Das Problem, vor dem ich gerade stehe. Die zwei Aktionen sollen in unterschiedlichen Intervallen ausgeführt werden....
  6. Corona: Mehrere Timer in Formular nur 1. wird geupdatet

    in Microsoft Access Hilfe
    Corona: Mehrere Timer in Formular nur 1. wird geupdatet: Hallo zusammen :-), wir haben gerade mehrere Mitarbeiter im Corona-Einsatz und müssen je nach Equipment eine Dokumentation des Atemschutzeinsatzes durchführen. Das Tool steht auch soweit und nun...
  7. Time-Funktion

    in Microsoft Access Tutorials
    Time-Funktion: Time-Funktion Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  8. Timer-Funktion

    in Microsoft Access Tutorials
    Timer-Funktion: Timer-Funktion Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden