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

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

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

167 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige