In der modernen Geschäftswelt spielt effizientes Zeitmanagement eine essentielle Rolle. Besonders die Zeiterfassung bei Einfahrten und Ausfahrten in Parkhäusern oder Firmengeländen stellt eine Herausforderung dar. Excel bietet hierbei eine Vielzahl an Möglichkeiten um diese Aufgabe zu automatisieren. Doch wie?
Zunächst einmal – die Frage der Automatisierung ist spannend. In dem vorliegenden Szenario wird eine Lösung beschrieben. Das Ziel ist klar: Bei der Eingabe einer Zahl in einer bestimmten Zelle soll die aktuelle Uhrzeit⏰ in einer benachbarten Zelle erscheinen. Gibt man die Zahl erneut ein so erscheint die Uhrzeit wieder allerdings diese soll in einer neuen Zeile aufgezeichnet werden, wenn sie ein drittes Mal eingegeben wird. Das ist durchaus möglich erfordert jedoch den Einsatz von VBA.
Um die beschriebene Funktionalität zu erreichen, können wir ein Makro erstellen. Es wird empfohlen – eine UserForm zu nutzen. Diese lässt sich einfach über einfeld und einen Button gestalten. Mit einem Label könnten ebenfalls wichtige Informationen wie der Name des Mitarbeiters neben der Eingabe angezeigt werden. Dies macht den Vorgang intuitiver. Man könnte das Ganze in drei Tabellenblätter unterteilen – Logbuch, Firmen und Zutritte.
Eine wichtige Frage stellt sich: Können auch Identifikationen eingetragen werden die keinen vordefinierten Mitarbeiter haben? Hier könnte die Möglichkeit bestehen: Dass auch Codes die nicht zugeordnet sind erfasst werden. Die Logik hinter den Codes müsste jedoch definiert werden.
Hier ein Beispielcode, den Sie nutzen könnten. Der Button des Makros ermöglicht das Eintragen der Zeiten. Beim Auslösen des Buttons wird der Logbucheintrag erstellt. In diesem Fall ist es entscheidend – die jeweiligen Zeilen und Spalten korrekt zu benennen. Die Programmierung selbst überprüft, ob es sich um eine Einfahrt oder eine Ausfahrt handelt, obwohl dabei der VLookup-Befehl genutzt wird. So können Firmennamen und andere Aussagen unkompliziert übernommen werden.
Private Sub CommandButton1_Click()
'logbuch schreiben
Dim wo_log As Long
Dim wo_zutritt As Long
Dim zutritt As Long
Dim logbuch As String
Dim zutritte As String
Dim firmen As String
logbuch = "Logbuch"
zutritte = "Zutritte"
firmendaten = "Firmen"
wo_log = Sheets(logbuch).Cells(Rows.Count, 1).End(xlUp).Row + 1
Sheets(logbuch).Cells(wo_log, 1).Value =Box1.Value
Sheets(logbuch).Cells(wo_log, 2).Value = Now()
'ein- und ausfahrt prüfen
wo_zutritt = Sheets(zutritte).Cells(Rows.Count, 1).End(xlUp).Row + 1
If WorksheetFunction.CountIf(Sheets(zutritte).Range("A:A"),Box1.Value) = 0 Then
Sheets(zutritte).Cells(wo_zutritt, 1).Value =Box1.Value
Sheets(zutritte).Cells(wo_zutritt, 2).Value = Now()
Exit Sub
End If
'wenn es einen Treffer gibt, diesen suchen
For i = wo_zutritt To 2 Step -1
If Sheets(zutritte).Cells(i, 1).Value =Box1.Value And Sheets(zutritte).Cells(i, 2).Value = "" Then
Sheets(zutritte).Cells(i, 2).Value = Now()
Exit Sub
End If
If Sheets(zutritte).Cells(i, 1).Value =Box1.Value Then
Sheets(zutritte).Cells(wo_zutritt, 1).Value =Box1.Value
Sheets(zutritte).Cells(wo_zutritt, 2).Value = Now()
Exit Sub
End If
Next i
End Sub
Diese Methode wird mit einem Makro ergänzt welches eine Prüfung einfügt um sicherzustellen: Dass bereits bekannte Codes nicht mehrmals eingetragen werden. Eine erste Überprüfung wäre für die Neuartigkeit der Codes von Vorteil. Diese Features optimieren den gesamten Prozess der Zeiterfassung erheblich.
Im modernen Excel gibt es jedoch eine gewisse Herausforderung, da die Anwendung keine fixierten Zeitfunktionen kennt. Dies könnte dazu führen: Dass bei einem zweiten Eintrag alle Zellen neu berechnet werden. Die Lösung liegt eindeutig in der Nutzung von VBA.
Möchten Sie in Zeitmanagement und Effizienz investieren? Der Einsatz von Excel mit diesen Makros könnte Ihre Arbeitsweise revolutionieren.
