Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1364to1368
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

Zeiterfassung wie lange Datei offen

Zeiterfassung wie lange Datei offen
25.06.2014 11:23:37
Andreas
Hallo zusammen in die Runde,
ich möchte gern das, wenn ich eine Datei öffne, in dieser Datei eine Zeiterfassung
startet. Wenn geschlossen wird, natürlich anhalten.Diese sollte die Minuten gezählt werden.
Beim wiederholten öffnen, wenn möglich weiterlaufen, bis ein abschließender Befehl
die Zeiterfassung stopt und dieses für immer und ewig in der Datei behält.
Beispiel: montag auf um 10:45 - geschlossen 12:00
Dienstag auf 8:00 - geschlossen 10:00
Und diese Zeiten sollten addiert werden zwecks kompl. Duchlaufzeiten der Maschinen.
Ich weiss nicht, ob dieses überhaupt möglich ist.
Mir geht es halt um die Gesamtarbeitszeit einer einzelnen Maschine, die später ausgewertet werden soll.
Für eure Hilfe wäre ich Euch dankbar
Andreas

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeiterfassung wie lange Datei offen
25.06.2014 12:08:55
UweD
Hallo
so z.B.
In "DieseArbeitsmappe"
Option Explicit
Private Sub Workbook_Open()
On Error GoTo Fehler
Dim TB, SP%, LR&
Set TB = Sheets("Tabelle1")
SP = 4 'Spalte D
With TB
If UCase(.Cells(1, 1).Value)  "A" Then Exit Sub ' nur wenn automatisch
LR = .Cells(Rows.Count, SP).End(xlUp).Row + 1 'erste freie Zeile
.Cells(LR, SP) = Now
End With
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
Clear
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo Fehler
Dim TB, SP%, LR&
Set TB = Sheets("Tabelle1")
SP = 4 'Spalte D
With TB
If UCase(.Cells(1, 1))  "A" Then Exit Sub ' nur wenn automatisch
LR = .Cells(Rows.Count, SP).End(xlUp).Row  'letzte Zeile der Spalte
.Cells(LR, SP + 1) = Now
.Cells(LR, SP + 2) = .Cells(LR, SP + 1) - .Cells(LR, SP)
End With
Me.Save
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
Clear
End Sub

Tabelle1
 ABCDEFGH
1AAutomatisch / Manuell (A) / (M)  StartEndeDauer00:09:17Gesamt
2      25.06.2014 11:52:2325.06.2014 12:00:4100:08:18   
3      25.06.2014 12:02:0125.06.2014 12:02:2900:00:28   
4      25.06.2014 12:03:4225.06.2014 12:04:1300:00:31   
5      25.06.2014 12:04:32       

verwendete Formeln
Zelle Formel Bereich
G1 =SUMME(F:F) 

Tabellendarstellung in Foren Version 5.49


Gruß UweD

Anzeige
AW: Zeiterfassung wie lange Datei offen
25.06.2014 12:57:48
Andreas
Hallo Uwe,
danke für deins schnelle Antwort. Klasse funktioniert gut
Leder vergass ich zu sagen, das die Auswertung bzw. Auflistung weiter unten statt finden soll.
da ich oberhalb mein Formular habe.
Wie müsste dein Code aussehen wenn
A = Zelle J97
Start = Zelle L97
Ende = Zelle T97
Dauer = AB 97
gesamt = AJ 97
stehen sollten. Nach unten habe ich natürlich genügend Platz.
Eine Vorauswahl automatisch oder manuell wäre nicht von Nöten.
Es soll automatisch ablaufen, da andere Kollegen dieses ebenfalls benutzen sollen.
Vielleicht hast du nochmal Zeit, mir da nochmal zu helgfen.
Danke im voraus.....
Andreas

Anzeige
AW: Zeiterfassung wie lange Datei offen
25.06.2014 13:43:50
UweD
Hallo nochmal
Das mit dem A hatte ich vorgesehen für :
bis ein abschließender Befehl
die Zeiterfassung stopt und dieses für immer und ewig in der Datei behält.

Wenn das A entfernt wird, wird nichts weiteres gerechnet.
Option Explicit
Private Sub Workbook_Open()
On Error GoTo Fehler
Dim TB, LR&
Set TB = Sheets("Tabelle1")
With TB
If UCase(.Range("J97").Value)  "A" Then Exit Sub ' nur wenn automatisch
LR = .Cells(Rows.Count, 12).End(xlUp).Row + 1 'erste freie Zeile
.Cells(LR, 12) = Now
End With
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
Clear
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error GoTo Fehler
Dim TB, LR&
Set TB = Sheets("Tabelle1")
With TB
If UCase(.Range("J97").Value)  "A" Then Exit Sub ' nur wenn automatisch
LR = .Cells(Rows.Count, 12).End(xlUp).Row  'letzte Zeile der Spalte
.Cells(LR, 20) = Now
.Cells(LR, 28) = .Cells(LR, 20) - .Cells(LR, 12)
.Range("AJ97") = WorksheetFunction.Sum(Range("AB98:AB" & LR))
End With
Me.Save
'*** Fehlerbehandlung
Err.Clear
Fehler:
If Err.Number  0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description: Err. _
Clear
End Sub
Gruß UweD

Anzeige
AW: Zeiterfassung wie lange Datei offen
25.06.2014 14:20:02
Andreas
Hallo Uwe,
das mit dem "A" ist klasse. Hatte ich nicht dran gedacht.
Doch leider funktioniert dieses in meiner Datei nicht.
Meine Datei besteht aus drei Arbeitsblättern, den Code habe ich in Arbeitsblatt "Arbeitsscheine" eingefügt und die
Begriffe "Tabelle1" aus deiner Datei gegen "Arbeitsscheine" ausgetauscht. Aber kein Erfolg.
Die Formel in G1(deine Datei) habe ich geschrieben SUMME AB:AB - wo die Dauer eingetragen wird.
Hast du eine Idee wieso nicht ?
Wenn ich den Code in "Diese Arbeitsmappe" einfüge, kommt Err 9 (?)
Andreas

AW: Zeiterfassung wie lange Datei offen
25.06.2014 18:04:01
UweD
Hallo
Der Code muss in "DieseArbeitsmappe"
Die Summenformel hatte ich eliminiert und per VBA rechnen lassen.
Ich hab mal die Datei angehangen...
https://www.herber.de/bbs/user/91263.xlsm
Gruß UweD

Anzeige
AW: Zeiterfassung wie lange Datei offen
26.06.2014 09:06:06
Andreas
Moin Uwe
danke für deine Mühen.
Habe alles so gemacht, wie du beschrieben, habe deinen Code nochmals kopiert und eingefügt,
aber ich bekomme immer beim Schließen den Fehler
Fehler 9
Index außerhalb des gültigen Bereiches.
Mir ist aufgefallen, das deine Datei eine .xlsm Datei ist
Meine dagegen eine .xls Datei
Mein Excel ist Excel 2003. Kann da der Fehler liegen ?
Andreas
muss in einer Stunde einen Außendienst wahrnehmen. Bin dann nicht vor 16:00 zurück
Bitte nicht wundern - danke

offen
27.06.2014 09:15:17
UweD

AW: Zeiterfassung wie lange Datei offen
29.06.2014 22:07:01
Franc
Hast du eventuell das Blatt umbenannt und nur im Open Teil den Namen angepasst? ^^
Ansonsten schreibe am Anfang vom Close Makro "stop" und schließe die Datei.
Das Makro stoppt nun ^^ und du kannst mit F8 per Einzelschritt da durch uns siehst bei welcher Zeile der Fehler kommt.
PS: Bei "WorksheetFunction.Sum(Range" fehlt der . vor Range also "WorksheetFunction.Sum(.Range"
Das führt aber nicht zu deinem Fehler sondern nur dazu das die Summe nicht berechnet wird wenn du auf einem anderen Blatt bist.

Anzeige
AW: Zeiterfassung wie lange Datei offen
30.06.2014 08:50:38
Andreas
Guten morgen Franc,
danke für deine Mühen zu später Zeit.
Ich habe deine Hilfen mal ausprobiert, komme aber zu keinem befriedigenden Ergebniss.
Er zeigt mir immer einen Fehler an. Wenn erst Daten in den Zellen stehen, funktioniert
des ganz gut. Der Anfang ist glaube ich das Problem, der bringt alles durcheinander.
Da mein Wissen in diesem Bereich leider nicht so dolle ist, wollte ich mal fragen, ob du event. mal auf die Datei seghen könntest. dazu gehören zwei weitere Arbeitsblaätter, die ich wegen der Größe
löschen musste.Musste letzendlich fast alles Löschen wegen der Größe
Beim ersten schließen und einsetzen der Zeit macht er in Zelle AJ 97 komische Berechnungen....
Ich wäre dir dankbar.
Ansonsten ein schönen Wochenanfang.
Andreas

Die Datei https://www.herber.de/bbs/user/91322.xls wurde aus Datenschutzgründen gelöscht


Anzeige
AW: Zeiterfassung wie lange Datei offen
30.06.2014 16:45:33
UweD
Hallo nochmal
funktioniert tadellos (die .xls aus 2003 unter 2007 geladen)
Auch mit den Verbundenen Zellen
- - -
"Wenn erst Daten in den Zellen stehen, funktioniert
des ganz gut. Der Anfang ist glaube ich das Problem, der bringt alles durcheinander."

Du solltest wenigstens die Überschrift in L96 drin haben
- - -
..."macht er in Zelle AJ 97 komische Berechnungen...."

Das ist die Summierung der Gesamtzeit.
(Eine Änderung hab ich noch gemacht... .Range("AJ97") = WorksheetFunction.Sum(.Range("AB97:AB" & LR)) da wurde die erste zeile nicht mitadiert.
https://www.herber.de/bbs/user/91337.xls
Gruß UweD

Anzeige
AW: Zeiterfassung wie lange Datei offen
01.07.2014 10:57:10
Andreas
Hallo Uwe D,
danke nochmal für deine Hilfe,
Wenn ich die Werte alle Felder lösche (L97, T97, AB97, AJ 97) und dann die Datei nach sdem speichern "schließe" schreibt er mir in Zelle T96 den ersten Wert rein und gibt ein Fehler.
wenn ich dieses dann speichere, wieder öffne (aktueller Eintrag in Spalte L) und dann schließe
(aktueller Eintrag in Spalte T), dann funktioniert dieses sehr gut
Ich brauche natürlich eine Ausgangsdartei, welche erst zählt, wenn ich diese öffne.
Und da ich das mit mehreren Kollegen teilen werde, kommt bestimmt die Frage- Was ist das für ein Fehler....
mfg
Andreas

Anzeige
AW: Zeiterfassung wie lange Datei offen
01.07.2014 11:36:03
UweD
Hallo nochmal
jetzt hab ich es verstanden.
Für den ersten Start der Datei hab ich eine Zeile ergänzt.
...
If UCase(.Range("J97").Value) "A" Then Exit Sub ' nur wenn automatisch
LR = .Cells(Rows.Count, 12).End(xlUp).Row 'letzte Zeile der Spalte
If Not IsDate(.Cells(LR, 12)) Then Exit Sub ' für ersten Start
.Cells(LR, 20) = Now
Gruß UweD

AW: Zeiterfassung wie lange Datei offen
01.07.2014 12:14:24
Andreas
Hallo Uwe,
ja das ist es. Jetzt funktioniert dieses hervorragend.
Ich danke dir für deine Mühen und das du so lange am Ball geblieben bist.
....und wenn ich nicht weiter zählen möchte, lösche ich einfach das A aus der Zelle J97
Ich danke dir
wünsche dir noch eine schöne Restwoche !!
mfg
Andreas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige