Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Makro Uhrzeiteingabe - nach 00:00 Uhr

Forumthread: Makro Uhrzeiteingabe - nach 00:00 Uhr

Makro Uhrzeiteingabe - nach 00:00 Uhr
lutz
Hallo Excel Spezialisten,
ich habe eine Arbeitszeiterfassung "geerbt" und würde da gerne etwas umstellen.
Im Moment gibt man in die Blätter "Jan", "Feb"... in die Spalte E die Anfangszeit und in Spalte F die Endzeit der Schicht ein.
Das Programm ist derzueit so, dass man in Salte F die Endzeit auf 25:00 eingibt um 01:00 zu berechnen. D.h. Uhrzeiten über 00:00 Uhr müßen immer mit +24:00 eingegeben werden.
Weil dahinter zig Zuschläge mit zig Wenn-Formeln berechnet werden, müßte ich das komplette Programm umbauen wenn ich das ändern wollte ( habe schon mal vorne mit =WENN(E11="";"";WENN(E11 Daher die Frage: kann man im Zellbereich F11:F41 ein Makro im Worksheet laufen lassen, das bei Eingabe > Spalte E dann 24:00 dazuaddiert?
Beispiel: wenn in Spalte E 22:30 steht und in Spalte F dann 02:00 eingeben wird, sollte das Makro das in 26:00 umschreiben.
Ist das möglich?
Vielen Dank für Eure Hilfe und viele Grüße Lutz
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Makro Uhrzeiteingabe - nach 00:00 Uhr
26.03.2012 12:19:37
Tino
Hallo,
kannst mal diesen Code testen ob er so funktioniert.
Kommt als Code in die Tabelle
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rng As Range, rngTmp As Range, varArray, ArrAus(), n&

Set rng = Intersect(Range("E:F"), Target)
If rng Is Nothing Then Exit Sub

Application.EnableEvents = False
For Each rng In Target.Areas
    Set rngTmp = rng.Columns(1)
    If rngTmp.Column = 5 Then Set rngTmp = rngTmp.Offset(, 1)
    varArray = rngTmp.Offset(, -1).Resize(, 2)
    Redim ArrAus(1 To Ubound(varArray), 1 To 1)
    For n = 1 To Ubound(varArray)
        ArrAus(n, 1) = varArray(n, 2)
        If varArray(n, 1) <> "" Then
            If varArray(n, 2) <> "" Then
                If varArray(n, 1) > varArray(n, 2) Then
                    If IsNumeric(varArray(n, 1)) And IsNumeric(varArray(n, 2)) Then
                        ArrAus(n, 1) = varArray(n, 2) + 1
                    End If
                End If
            End If
        End If
    Next n
    rngTmp.Value = ArrAus
    Erase ArrAus
Next rng
Application.EnableEvents = True
End Sub
Fruß Tino
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

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