Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeiterfassung, wenn x dann Zelle leer...

Forumthread: Zeiterfassung, wenn x dann Zelle leer...

Zeiterfassung, wenn x dann Zelle leer...
04.09.2018 07:24:20
Peter
Guten Morgen zusammen
Ich habe einen einfachen Tagesrapport, die Tätigkeiten werden unter einander geschrieben. Ich benötige die Lösung in VBA und nicht via Formel wie ich es z.T. gemacht habe.
https://www.herber.de/bbs/user/123726.xlsm
1. Startzeit gleich Endzeit des Vorgängers wenn gleiche Tag:
Wenn ein neuer Tag beginnt wird diese in Spalte B mit einem x markiert, fehlt das x dann ist es eine Tätigkeit des gleichen Tages.
Wenn in Spalte B ein x steht, dann soll in Spalte D in der entsprechenden Zelle nichts stehen, die Uhrzeit wird in dieser Zelle von Hand reingeschrieben.
Steht jedoch in Spalte B kein x und es beginnt kein neuer Tag, dann soll in Spalte D die Endzeit, die in Spalte E steht, der vorherigen Tätigkeit übernommen werden, so das die Endzeit der vorherigen Tätigkeit automatisch die Startzeit der neuen Tätigkeit wird.
2. Datum
Spalte A, wenn es ein neuer Tag ist (x in Spalte B) dann Datum des Vorgängers + 1 Tag, wenn es kein neuer Tag ist, dann gleiches Datum wie der Vorgänger.
3. Zeit rechnen
In Spalte F und G soll die Zeit der Tätigkeit gerechnet werden. Wenn in Splate H "0002 Pause unbezahlt" steht, dann soll die Zeit in Spalte G stehen, wenn nicht, dann in Spalte G.
Vielen Dank für Euren Support
Viele Grüsse,
Peter
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeiterfassung, wenn x dann Zelle leer...
05.09.2018 18:48:44
Bernd
Hi,
wenn Du ohnehin bisher nur Formeln verwendet hast, warum ladest Du dann eine xlsm Datei hoch?
MfG Bernd
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zeiterfassung in Excel mit VBA automatisieren


Schritt-für-Schritt-Anleitung

Um die Zeiterfassung in Excel mit VBA gemäß Peters Anforderungen zu automatisieren, folge diesen Schritten:

  1. Öffne Excel und erstelle ein neues Arbeitsblatt.

  2. Öffne den VBA-Editor:

    • Drücke ALT + F11.
  3. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsm)“, wähle „Einfügen“ und dann „Modul“.
  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub AutoZeiterfassung()
       Dim ws As Worksheet
       Set ws = ThisWorkbook.Sheets(1) ' Ändere die Nummer, falls du ein anderes Blatt verwendest
    
       Dim lastRow As Long
       lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row
    
       Dim i As Long
       For i = 2 To lastRow ' Beginne ab der zweiten Zeile
           If ws.Cells(i, 2).Value = "x" Then
               ws.Cells(i, 4).Value = "" ' Zelle D leer lassen
               ws.Cells(i, 1).Value = ws.Cells(i - 1, 1).Value + 1 ' Datum erhöhen
           Else
               ws.Cells(i, 4).Value = ws.Cells(i - 1, 5).Value ' Endzeit der vorherigen Tätigkeit
               ws.Cells(i, 1).Value = ws.Cells(i - 1, 1).Value ' Datum gleich lassen
           End If
       Next i
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus:

    • Drücke ALT + F8, wähle AutoZeiterfassung und klicke auf „Ausführen“.

Häufige Fehler und Lösungen

  • Fehler: Das Makro wird nicht ausgeführt.

    • Lösung: Stelle sicher, dass die Datei als .xlsm (Makro-fähig) gespeichert ist.
  • Fehler: Zellen bleiben leer.

    • Lösung: Überprüfe, ob in Spalte B ein „x“ steht und ob die Daten in den richtigen Zeilen eingetragen sind.

Alternative Methoden

Falls Du keine VBA-Lösung verwenden möchtest, gibt es auch die Möglichkeit, die Zeiterfassung mit Formeln zu realisieren. Hierbei kannst Du die WENN()-Funktion verwenden, um die gleichen Bedingungen zu überprüfen und die Zellen entsprechend zu befüllen.

Beispiel für die Startzeit in Zelle D2:

=WENN(B2="x"; ""; WENN(B1=""; ""; E1))

Praktische Beispiele

Um die Funktionalität zu testen, kannst Du einige Beispielwerte in die Spalten A bis H eintragen. Achte darauf, dass Du in der Spalte B die „x“-Markierung für neue Tage einfügst.

A (Datum) B (Neuer Tag) C (Tätigkeit) D (Startzeit) E (Endzeit) F (Dauer) G (Zeit) H (Pause)
01.01.2023 x Tätigkeit 1 08:00
01.01.2023 Tätigkeit 2 16:00 0002 Pause unbezahlt

Tipps für Profis

  • Optimiere deine VBA-Codes: Verwende Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind.
  • Fehlerbehandlung hinzufügen: Implementiere On Error-Anweisungen, um Laufzeitfehler zu vermeiden.
  • Dokumentiere deinen Code: Schreibe Kommentare, um die Funktionsweise deiner Makros zu erklären.

FAQ: Häufige Fragen

1. Kann ich das Makro auch in älteren Excel-Versionen verwenden? Ja, das Makro sollte in Excel 2010 und späteren Versionen ohne Probleme funktionieren.

2. Wie kann ich das Makro anpassen? Du kannst die Bedingungen im VBA-Code ändern, um andere Anforderungen zu erfüllen. Achte darauf, die Logik hinter den Bedingungen zu verstehen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige