Feststellen, wie lange Excel-Mappe täglich offen war
Hallo,
wir haben bei uns eine Excel-Mappe, in die mehrere Kollegen tagsüber verschiedene Eintragungen machen. Die Kollegen öffnen die Mappe, machen ihre Einträge und schließen die Mappe wieder.
Jetzt würde ich gerne wissen, wie lange die Mappe insgesamt an einem Tag bearbeitet worden ist.
Ich habe mir vorgestellt, dass bei jedem öffnen und schließen der Mappe dies auf einem Tabellenblatt vermerkt wird. Dann brauche ich nur noch die Zeit zusammenrechnen.
Wie ich ein Makro beim Öffnen bzw. Schließen einer Arbeitsmappe ablaufen lassen kann, habe ich schon herausgefunden (naja, wenigstens mal ein Anfang...).
Aber wie kann ich das Programm dazu überreden, den Öffnen- bzw. Schließenzeitpunkt in eine Tabelle einzutragen, dass ich die Zeiten berechnen kann.
Vielen Dank im Voraus für eure Hilfe
Jürgen
PS: dies soll NICHT der Mitarbeiterüberwachung dienen, sondern aufzeigen, wieviel Zeit durch (teilweise unnötige) Eintragungen verloren geht!
Antwort schreiben
Antwort 1 von Hajo_Zi vom 21.05.2021, 09:49 Options
Hallo Nick,
Dir ist schon klar das dies in Deutschland nicht zulässig ist. Solche Zeiten pro Mitarbeiter zu erfassen.
Range("A1") = Time
Gruß hajo
Antwort 2 von mnbnmn vom 21.05.2021, 14:11 Options
*Threadedit* 21.05.2009, 16:31:36
Admininfo: gelöscht wg. Sprechdurchfall, siehe die SN Nutzungsbedingungen.
Antwort 3 von xquer vom 21.05.2021, 14:45 Options
Ich muss schon sagen, dass es hier im Forum schon drollige Menschen gibt! Anstatt einem ordendlich zu helfen, gibt es unsinnige Kommentare.
Nochmal auf Deutsch: wir sind 10 Kollegen und müssen (teilweise) unsinnige Sachen in eine Tabelle eintragen. Wie soll ich sonst aufzeigen, wieviel Zeit verloren geht?
Schade (auch im Namen meiner Kollegen)....
Grüße
Jürgen
Antwort 4 von Hajo_Zi vom 21.05.2021, 15:02 Options
Hallo Jürgen,
was geht an meinem Vorschlag nicht?
Das die Zelle angepast werden muss ist ja wohl selbstverstänfdlich.
Es war ja nur die Frage wie ich die Zeit in die Zelle bekomme.
Vielleicht solltest Du aber Now benutzen damit ein Tag auch dabei ist.
Gruß Hajo
Antwort 5 von xquer vom 21.05.2021, 16:38 Options
Hallo Hajo,
sorry, du warst nicht gemeint!
Ich sehe, du kannst mir folgen;-
Wenn jemand die Mappe öffnet, wird die Zeit in eine Zelle geschrieben, wird die Mappe geschlossen, kommt diese Zeit in die Zelle daneben.
Und wie mache ich es denn nun in einem Makro, dass er mir die Zelle nicht überschreibt, sondern beim nächsten Öffnen und Schließen der Mappe die Daten in die Zellen darunter einträgt?
Grüße
Jürgen
Antwort 6 von Hajo_Zi vom 21.05.2021, 16:50 Options
Hallo Jürgen,
Option Explicit
Dim LoLetzte As Long
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
With Worksheets("Tabelle3")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
.Cells(LoLetzte - 1, 2) = Now
.Cells(LoLetzte - 1, 3).Formula = "=" & .Cells(loetzte - 1, 2).Address & "-" & .Cells(LoLetzte - 1, 1).Address
.Cells(LoLetzte - 1, 3).NumberFormat = "[h]:mm:ss"
End With
End Sub
Private Sub Workbook_Open()
Dim LoI As Long
Dim LoJ As Long
Dim StMeldung As String
With Worksheets("Tabelle3")
LoLetzte = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(Rows.Count, 1).End(xlUp).Row, .Rows.Count) + 1
.Cells(LoLetzte, 1) = Now
End With
End Sub
In Tabelle3 wird das Protokoll geführt
Gruß Hajo
Antwort 7 von Hajo_Zi vom 21.05.2021, 21:56 Options
Hallo Jürgen,
die Zeile hat mocch ein Fehler
.Cells(LoLetzte - 1, 3).Formula = "=" & .Cells(loetzte - 1, 2).Address & "-" & .Cells(LoLetzte - 1, 1).Address
da fehlt ein Buchstabe
.Cells(LoLetzte - 1, 3).Formula = "=" & .Cells(loletzte - 1, 2).Address & "-" & .Cells(LoLetzte - 1, 1).Address
Gruß Hajo
Antwort 8 von xquer vom 21.05.2021, 22:18 Options
Hallo Hajo,
recht herzlichen Dank!
Es funktioniert wirklich so, wie ich es mir vorgestellt hatte. Sogar mit Berechnung:-))
Vielleicht werde ich es ja irgendwann mal schaffen, solche Skripte selbst hinzubekommen. Muss doch mal 'nen Lehrgang besuchen...
Grüße
Jürgen
PS: deine HP ist schon in meinen Favoriten;-)