Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1660to1664
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeiteintrag in Tabelle wenn PC in Sleeptime geht?

Zeiteintrag in Tabelle wenn PC in Sleeptime geht?
10.12.2018 21:50:25
Jay
Hallo Zusammen.
Ich hab mal wieder eine Frage für Euch Profis.
- Ist es möglich, wenn der PC in den Ruhemodus (oder Powersavemodi)
einen Eintrag in eine Tabelle machen zu lassen?

Hintergrund:
Da ich seit neuem immer öfter HomeOffice tätige, und immer wieder gestört werde (☺ Kids), passiert es mir häufig, dass ich vergessen habe wenn ich aufgehört habe zu arbeiten (kennt der Eine oder Andere sicherlich).
Ich habe mir eine kleine Datei geschrieben (nix tolles, aber reicht) in der ich manuell die Zeit Ein.- bzw. Austrage. Aber es wäre einfacher, wenn es eine Möglichkeit gäbe, eine kleine Automation mit einzubauen.
Ich hoffe ihr habt mal wieder geniale Ideen.
Im Voraus vielen lieben Dank.
Gruß Jay
Der Code:
  • 
    Sub ZeitEintragen()
    '   Zeile nach unten verschieben und Format übertragen
    If Cells(4, 3) = "" Then Exit Sub
    Range(Cells(4, 1), Cells(4, 6)).Select
    Selection.Copy
    Selection.Insert Shift:=xlDown
    Application.CutCopyMode = False
    Range(Cells(4, 1), Cells(4, 6)).ClearContents
    Cells(4, 1) = Format(Date, "dd.mm.yyyy")
    Cells(4, 2) = Format(Time, "hh:mm:ss")
    Range("B4").Select
    ActiveWorkbook.Save
    End Sub
    
    Sub ZeitAustragen()
    '   Endzeit in Spalte C eintragen
    Dim LZL As Long
    Dim i As Long
    Sheets("Zeiterfassung").Activate
    '    LZL = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
    Cells(4, 3) = Format(Time, "hh:mm:ss")
    '   Dauer berechnen und in Spalte D eintragen
    Cells(4, 4).Select
    Selection.NumberFormat = "hh:mm:ss;@"
    Cells(4, 4) = Cells(4, 3) - Cells(4, 2)
    Cells(4, 1).Select
    ZeitGesamt
    ActiveWorkbook.Save
    End Sub
    

  • 5
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Zeiteintrag in Tabelle wenn PC in Sleeptime geht?
    11.12.2018 09:19:46
    Torsten
    Hallo Jay,
    was ich dir anbieten kann (wir benutzen dass in der Firma, um eventuelle zusaetzliche Pausen zu checken ;-)) ist, die Idle Time des PC zu checken und dann nach bestimmter Idle Time einen Eintrag zu machen. Wenn das deinen Anspruechen dient, sag bescheid.
    Muss halt nach deinen Beduerfnissen und deinem Sheet etwas umgebaut werden, aber das wird schon.
    Gruss Torsten
    AW: Zeiteintrag in Tabelle wenn PC in Sleeptime geht?
    11.12.2018 11:41:56
    Torsten
    Da du noch nicht geantwortet hast, hab ich schon mal was vorbereitet.
    Ich weiss leider nicht, wie du die beiden Subs aufrufst, die du gepostet hast.
    Versuch mal folgendes:
    Kopiere diesen Code in ein leeres Modul:
    Public dTime As Date
    Type LASTINPUTINFO
    cbSize As Long
    dwTime As Long
    End Type
    Declare Sub GetLastInputInfo Lib "user32" (ByRef plii As LASTINPUTINFO)
    Declare Function GetTickCount Lib "kernel32" () As Long
    Function IdleTime() As Single
    Dim a As LASTINPUTINFO
    a.cbSize = LenB(a)
    GetLastInputInfo a
    IdleTime = (GetTickCount - a.dwTime) / 1000
    End Function
    Sub TestIdleTime()
    If IdleTime >= 10 * 60 Then
    Call ZeitAustragen
    Else
    StartTimer
    End If
    End Sub
    Sub StartTimer()
    dTime = Now + TimeValue("00:00:03")
    Application.OnTime dTime, "TestIdleTime", , True
    End Sub
    Sub StopTimer()
    On Error Resume Next
    dTime = Now + TimeValue("00:00:03")
    Application.OnTime dTime, "TestIdleTime", , False
    End Sub
    
    Die Zeit, in der keine Tastatur oder Maus benutzt wird (idle Time), hab ich mal auf 10 min gesetzt.
    Nach dieser "untaetigen" Zeit wird deine Sub ZeitAustragen aufgerufen, also wird die Endzeit eingetragen in deinem Sheet "Zeiterfassung".
    Um den Timer zu starten, ist es wohl am besten, das im Workbook_Open event zu machen. Also so:
    Private Sub Workbook_Open()
    StartTimer
    End Sub
    
    Aber der Timer sollte auch gestoppt werden, wenn das Workbook geschlossen wird, also:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    StopTimer
    End Sub
    
    Probiers mal aus und sag bescheid, wenn du noch Hilfe brauchst.
    Gruss Torsten
    Anzeige
    AW: Zeiteintrag in Tabelle wenn PC in Sleeptime geht?
    12.12.2018 20:47:37
    Jay
    Hallo Torsten.
    Als erstes vielen lieben Dank für deinen Code.

    Ich bin dabei ihn zu testen.
    Zum zweiten bitte ich um Verzeihung, dass ich mich nicht gleich gemeldet habe.
    Ich war leider privat Verhindert.
    Wenn ich Ergebnisse habe (ca. morgen), werde ich dies umgehend dir mitteilen.
    Nochmals vielen Dank
    Gruss Jay
    AW: Zeiteintrag in Tabelle wenn PC in Sleeptime geht?
    12.12.2018 21:09:49
    Jay
    Hallo Torsten.
    Ich konnte es mir nicht verkneifen, Dein Makro aus zu probieren.
    HAMMER. Das klappt wirklich super ☺
    Vielen Dank
    LG Jay

    Gern geschehen
    13.12.2018 07:45:07
    Torsten
    Hi Jay,
    freut mich. Vielen Dank fuer die Rueckmeldung.

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige