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

Reisezeit berechnen über 24 Stunden

Forumthread: Reisezeit berechnen über 24 Stunden

Reisezeit berechnen über 24 Stunden
22.09.2025 21:25:19
Peer
Hallo zusammen.

Ich habe mit meinen beschränkten VBA-Kenntnissen versucht, mit Datum und Zeitwerten zu rechnen.

Hierbei habe ich eine Userform mit folgenden Textfelder...

txt_BeginnDatum für den Tag des Beginns einer Dienstreise
txt_BeginnZeit für die Zeit des Beginns der Dienstreise
txt_EndeDatum für den Tag des Ende einer Dienstreise
txt_EndeZeit für die Zeit des Ende der Dienstreise

Weiterhin habe ich noch ein Textfeld in der UF mit dem Namen txt_Reisezeit, dass die Reisezeit anzeigen soll.

Bisher habe ich für mit meinen derzeitigen Code durchaus arbeiten können, solange ich meine Dienstreise am selben Tag beenden konnte.

Nun bin ich aber manchmal mehrere Tage weg und daher bei einem Tag auch 24 Stunden.
Der Gedanke war, dass für eine Berechnung der Verpflegungspauschale >= 24 Stunden Excel immer 00:00 errechnet und damit die Rechnung nicht aufging.

Durch meine Recherchen in Foren und im Netz habe ich erfahren, dass Excel die Datumswerte "intern" als nummerischen Wert speichert, beginnend mit dem 01.01.1900 als Wert 1, wobei der Tag vor dem Komma und die Zeit nach dem Komma ist
Jetzt habe ich versucht mit folgenden Code erstmal die Werte der Textfelder in Double-Variablen umzuwandeln, die Datum-Variablen mit den Zeit-Variablen addiere, dann die DateDiff beider errechne und dann die Zeit in Minuten (dblSumme) wieder in ein Std:Min Wert zurückrechne.
Weiterhin nehme ich den Wert der Minuten (dblSumme) für eine Berechnung der Verpflegungspauschale in einer anderen UF.
Soweit klappt beides auch.

Nun hätte ich eine Frage dazu.
Kann oder muss man den Code anderes und eventuell einfacher oder übersichtlicher schreiben?

Hier der Code der Berechnung...
Sub zeit_berechnung()

'Reisezeitberechnung
Dim Beginn As Date, ende As Date, Summe As Date
Dim dblBeginnDate As Double, dblBeginnTime As Double
Dim datBeginnTime As Date, datBeginnDate As Date
Dim datEndeTime As Date, datEndeDate As Date
Dim dblEndeDate As Double, dblEndeTime As Double
Dim dblSummeBeginn As Double, dblSummeEnde As Double, dblSumme As Double

'zur Fehlerroutine
On Error GoTo Fehler

'wenn eins der Felder leer, dann Feld Reisezeit leer und Berechnung beenden
If frm_Tag.txt_BeginnZeit = "" Or frm_Tag.txt_EndeZeit = "" Then
frm_Tag.txt_Reisezeit = ""
Exit Sub
End If

'alte Variablen
'Beginn = CDate(frm_Tag.txt_BeginnZeit)
'ende = CDate(frm_Tag.txt_EndeZeit)

'Felder als Datum auslesen und in Variablen schreiben
datBeginnDate = CDate(frm_Tag.txt_BeginnDatum) 'zB 19.02.2025
datBeginnTime = CDate(frm_Tag.txt_BeginnZeit) 'zb 09:15
datEndeDate = CDate(frm_Tag.txt_EndeDatum) 'zB 20.02.2025
datEndeTime = CDate(frm_Tag.txt_EndeZeit) 'zB 20:45
'Variablen in Ganzzahlen umwandeln
dblBeginnDate = CDbl(datBeginnDate) 'Umwandeln datBeginnDate zB 45707
dblBeginnTime = CDbl(datBeginnTime) 'Umwandeln datBeginnTime zB 0,385416666666667
dblEndeDate = CDbl(datEndeDate) 'Umwandeln datEndeDate zB 45708
dblEndeTime = CDbl(datEndeTime) 'Umwandeln datEndeTime zB 0,86458333
'Variablen zusammefügen
dblSummeBeginn = dblBeginnDate + dblBeginnTime 'Summe BeginnDatum + BeginnZeit zB 45707,385416666666667
dblSummeEnde = dblEndeDate + dblEndeTime 'Summe EndeDatum + EndeZeit zB 45708,86458333
'Debug.Print dblSummeBeginn & Chr(13) & dblSummeEnde
dblSumme = DateDiff("n", dblSummeBeginn, dblSummeEnde, vbMonday, vbFirstJan1) 'Differenz zwischen BeginnTag + EndeTag in Stunden
Debug.Print datBeginnDate & ": " & dblSumme
Debug.Print "Stunden: " & dblSumme \ 60 & " und Minuten: " & dblSumme Mod 60

Application.EnableEvents = False
' If Beginn ende Then
' Summe = DateDiff("n", Beginn, ende) / 60
' Else
' Summe = DateDiff("n", Beginn, ende) / 60 + 24
' End If

If dblSummeBeginn dblSummeEnde Then
frm_Tag.txt_Reisezeit = Format(dblSumme \ 60, "00") & ":" & Format(dblSumme Mod 60, "00")
Else
MsgBox "Hä?"
Exit Sub
End If

'frm_Tag.txt_Reisezeit = Format(CDbl(Summe) / 24, "hh:mm")


Application.EnableEvents = True
Exit Sub
Fehler:
MsgBox "Falscher Wert", vbOKOnly, "Fehlermeldung Zeiteingabe"

End Sub


und hier der Code für die Berechnung der Verpflegungspauschale in einer ListBox
' ListBox mit Daten von allen Sheets füllen mit Hilfe von ralf_b von herber.de ------


Dim lngMonth As Long, ialngIndex As Long, lngRow As Long
Dim datBeginnDate As Date, datBeginnTime As Date, dblBeginnDate As Double, dblBeginnTime As Double
Dim datEndeDate As Date, datEndeTime As Date, dblEndeDate As Double, dblEndeTime As Double
Dim dblBeginnSumme As Double, dblEndeSumme As Double
Dim lngColumn As Long, lngDauer As Long, dblDauer As Double
Dim datBeginn As Date, datEnde As Date, strBeginnOrt As String
Dim strEndeOrt As String, strReiseOrt As String
Dim avntValues() As Variant, avntTemp As Variant, vntItem As Variant
Dim datAbgabe As Date, datAnnahme As Date, datGezahlt As Date

'On Error GoTo Fehler

For lngMonth = 1 To 12 'auf 12 Monate erhöhen!!!
lngRow = 11 'Beginn bei Zeile 12
With Worksheets(MonthName(Month:=lngMonth))
Do

If IsEmpty(.Cells(lngRow + 1, 26).Value) Then
lngRow = .Cells(lngRow, 26).End(xlDown).Row
Else
lngRow = lngRow + 1
End If
If lngRow .Rows.Count Then
'Festlegung der Listenspalten (hier 12)
ReDim Preserve avntValues(12, ialngIndex)

lngColumn = 0

'Beginn in Zahl umrechnen
datBeginnDate = CDate(.Cells(lngRow, "AA"))
' Debug.Print datBeginnDate
datBeginnTime = CDate(.Cells(lngRow, "AB"))
' Debug.Print datBeginnTime
dblBeginnDate = CDbl(datBeginnDate)
' Debug.Print dblBeginnDate
dblBeginnTime = CDbl(datBeginnTime)
' Debug.Print dblBeginnTime
dblBeginnSumme = CDbl(dblBeginnDate + dblBeginnTime)
' Debug.Print "Anfang: " & dblBeginnSumme

'Ende in Zahl umrechnen
datEndeDate = CDate(.Cells(lngRow, "AD"))
' Debug.Print datBeginnDate
datEndeTime = CDate(.Cells(lngRow, "AE"))
' Debug.Print datBeginnTime
dblEndeDate = CDbl(datEndeDate)
' Debug.Print dblBeginnDate
dblEndeTime = CDbl(datEndeTime)
' Debug.Print dblBeginnTime
'Summe in Zahl umrechnen
dblEndeSumme = CDbl(dblEndeDate + dblEndeTime)
' Debug.Print "Ende: " & dblEndeSumme

'Dauer in Stunden rechnen
dblDauer = DateDiff("h", dblBeginnSumme, dblEndeSumme, vbMonday, vbFirstJan1)
' Debug.Print "Dauer: "; datBeginnDate & "| " & dblDauer & " Stunden"

' Select Case dblDauer
' Case Is = 8
' MsgBox "Unter 8 Stunden"
'' Case Is > 8, Is 14
'' MsgBox "Über 8 aber unter 14 Stunden"
'' Case Is > 14, Is 24
'' MsgBox "Unter 24 Stunden aber über 14 Stunden"
' Case Is >= 24
' MsgBox "Gleich oder über 24 Stunden"
' End Select

datBeginn = CDate(.Cells(lngRow, "AA")) + CDate(.Cells(lngRow, "AB"))
' Debug.Print datBeginn
datEnde = CDate(.Cells(lngRow, "AD")) + CDate(.Cells(lngRow, "AE"))

lngDauer = DateDiff("h", datBeginn, datEnde)
' Debug.Print lngDauer
strBeginnOrt = Left(.Cells(lngRow, "AC"), 1)
strEndeOrt = Left(.Cells(lngRow, "AF"), 1)
datAbgabe = .Cells(lngRow, "AH").Value
datAnnahme = .Cells(lngRow, "AI").Value
datGezahlt = .Cells(lngRow, "AJ").Value

'Werte für Spalten 1-8 aus Spalte 26 bis 32 Sheets
avntTemp = .Range(.Cells(lngRow, 26), .Cells(lngRow, 35)).Value

'Array Spaltengröße erhöhen und 2 Spalten hinzufügen
ReDim Preserve avntTemp(1 To 1, UBound(avntTemp, 2) + 1)

avntTemp(1, 7) = .Cells(lngRow, "AE") - .Cells(lngRow, "AB").Value '(Dauer)
avntTemp(1, 9) = datAbgabe
avntTemp(1, 10) = datAnnahme
avntTemp(1, 11) = datGezahlt

'Anhand der Dauer Wert in Spalte 8 (Kosten) festlegen
Select Case dblDauer 'lngDauer
Case Is = 8 'der Wert = 8 Stunden (480 min)
avntTemp(1, 8) = "00,00 €"
Case Is >= 24 '4 Stunden (1140 min)
avntTemp(1, 7) = "24:00"
If strBeginnOrt = "A" Or strEndeOrt = "A" Then
avntTemp(1, 8) = "40,00 €"
ElseIf strBeginnOrt = "I" Or strEndeOrt = "I" Then
avntTemp(1, 8) = "40,00 €"
Else
avntTemp(1, 8) = "28,00 €"
End If
Case Is > 8
If strBeginnOrt = "A" Or strEndeOrt = "A" Then
avntTemp(1, 8) = "27,00 €"
ElseIf strBeginnOrt = "I" Or strEndeOrt = "I" Then
avntTemp(1, 8) = "27,00 €"
Else
avntTemp(1, 8) = "14,00 €"
End If
Case Else
avntTemp(1, 8) = "Fehler"
Debug.Print vntItem
End Select

For Each vntItem In avntTemp
Select Case lngColumn
Case 2, 5, 7
avntValues(lngColumn, ialngIndex) = Format$(vntItem, "Hh:Nn")
lngColumn = lngColumn + 1
Case Else
avntValues(lngColumn, ialngIndex) = vntItem
lngColumn = lngColumn + 1
End Select
Next
'schreibt den Tabellennamen und die Zeile getrennt durch ein Pipe in das Array
'wird für das Click-Event lst_Dienstreise benötigt
avntValues(12, ialngIndex) = MonthName(Month:=lngMonth) & "|" & CStr(lngRow)
ialngIndex = ialngIndex + 1
Else
Exit Do
End If
Loop
End With
Next
'Fehler abfangen, wenn ListBox leer bleibt
If ialngIndex = 0 Then
MsgBox "Es sind in diesem Jahr noch keine Reisen vorhanden", vbOKOnly + vbInformation, "Meldung"
Exit Sub
End If


Vielleicht finden die Profis eine Lösung.
In jedem Fall bin ich dankbar für Ideen.

Vielen Dank
Peer
Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Reisezeit berechnen über 24 Stunden
22.09.2025 21:55:57
daniel
Hi
wie gehts einfacher:
die Umrechnung in cdbl kannst du dir sparen, das macht VBA bei bedarf automatisch.
du kannst dir auch das addieren sparen und gleich beim Umwandeln der Text zusammenführen:

datBeginn = CDate(frm_Tag.txt_BeginnDatum & " " & frm_Tag.txt_BeginnZeit)
datEnde = CDate(frm_Tag.txt_EndeDatum & " " & frm_Tag.txt_EndeZeit)

DateDiff ist auch unnötig, im prinzip reicht dann: datEnde - datBeginn
DateDiff wird erst notwendig, wenn du Jahre oder Monate berechnen willst, weil das aufgrund der unterschiedlichen Monats- und Jahreslängen kompliziert zu berechnen ist, da nimmt einem die Funktion viel Arbeit ab, aber solange du auf Tages- oder Stundenebene bleibst, ist DateDif nicht notwendig.

diese Differenz kannst du dann mit 24 multiplizieren, wenn du die Stunden benötigst und mit 24*60, wenn du die Minuten brauchst.
Anzeige
AW: Reisezeit berechnen über 24 Stunden
23.09.2025 11:59:20
schauan
Hallöchen,

Dein oberes Select Case könntest Du so abkürzen:

avntTemp(1, 8) = "00,00 €"

If dblDauer > 8 And dblDauer 24 Then
avntTemp(1, 8) = "14,00 €"
If strBeginnOrt = "A" Or strEndeOrt = "A" Or strBeginnOrt = "I" Or strEndeOrt = "I" Then avntTemp(1, 8) = "27,00 €"
ElseIf dblDauer >= 24 Then
avntTemp(1, 8) = "28,00 €"
If strBeginnOrt = "A" Or strEndeOrt = "A" Or strBeginnOrt = "I" Or strEndeOrt = "I" Then avntTemp(1, 8) = "40,00 €"
End If


Warum hast Du eigentlich bei den 8h nur > und bei den 24 >= ? Ich hätte bei beiden das Gleiche, z.B. >= genommen.
Darüber hinaus würde ich die Quelldaten aus den Zellen in ein Array übernehmen und dann verarbeiten.
Anzeige
AW: Reisezeit berechnen über 24 Stunden
23.09.2025 12:27:41
Peer
Hallo schauan.
Es müssen ja über 8 Stunden sein und nicht >=, denn bis 8 Std wird nichts gezahlt.
Oder meinst du das aus einem anderen Zusammenhang?

Gruß Peer
AW: Reisezeit berechnen über 24 Stunden
23.09.2025 13:03:22
schauan
ich hab nun nochmal nachgeschaut, da gibt es schon seltsame Auslegungen, hier mal ein Zitat:

Verpflegungsmehraufwand 2025 (Inland)

Dauer: weniger als 8 Std., Pauschale: 0€
Dauer: 8-24 Std. (An- & Abreisetag), Pauschale: 14€
Dauer: Mindestens 24 Stunden, Pauschale: 28€

Für Dienstreisen mit einer Dauer von weniger als 24 aber mehr als 8 Stunden müssen 14 Euro in der Reisekostenabrechnung vermerkt werden. Bei einer Mindestdauer von 24 Stunden können für jeden ganzen Tag 28 Euro abgerechnet werden sowie für An- und Abreisetag jeweils 14 Euro.


Das widerspricht sich doch ... In der Zusammenfassung steht 8-24, und in der Erläuterung steht mehr als 8 ...

Beim BVA steht

Demnach beträgt die Verpflegungspauschale (das Tagegeld) bei Inlandsdienstreisen seit dem 01.01.2020

28 Euro für jeden Kalendertag, an dem der Arbeitnehmer ganze vierundzwanzig Stunden von seiner Wohnung abwesend ist,

jeweils 14 Euro für den An- und Abreisetag (unabhängig von der tatsächlichen Reisedauer), wenn der Arbeitnehmer an diesem, einem anschließenden oder vorhergehenden Tag außerhalb seiner Wohnung übernachtet,

14 Euro für den Kalendertag, an dem der Arbeitnehmer ohne Übernachtung außerhalb seiner Wohnung mehr als 8 Stunden von seiner Wohnung und der ersten Tätigkeitsstätte abwesend ist;

beginnt die auswärtige berufliche Tätigkeit an einem Kalendertag und endet erst am nachfolgenden Kalendertag, ohne das eine Übernachtung stattfindet (nächtliches Dienstgeschäft), werden in dem Fall, dass an keinem der beiden Tage ein Tagegeldanspruch besteht (Abwesenheitsdauer jeweils unter acht Stunden), die Stunden der beiden Kalendertage addiert und es werden 14,-- Euro für den Kalendertag gewährt, an dem der Arbeitnehmer den überwiegenden Teil der insgesamt mehr als acht Stunden von seiner Wohnung und der ersten Tätigkeitsstätte abwesend gewesen ist.


Auch hier impliziert die Formulierung
dass an keinem der beiden Tage ein Tagegeldanspruch besteht (Abwesenheitsdauer jeweils unter acht Stunden)
das bei 8h ein Anspruch bestehen müsste, obwohl weiter oben von mehr als 8h gesprochen wird.


Aber wenigstens das Finanzamt ist da gut aufgestellt - wer, wenn nicht das :-) :

Für eintägige Auswärtstätigkeiten im Inland ohne Übernachtung ist eine Verpflegungspauschale in Höhe von 14 Euro bei einer Mindestabwesenheitsdauer von mehr als 8 Stunden als Werbungskosten abziehbar. Bei einer mehrtägigen auswärtigen Tätigkeit mit Übernachtung kann für den An- und Abreisetag ohne Prüfung einer Mindestabwesenheitsdauer eine Verpflegungspauschale von 14 Euro als Werbungskosten berücksichtigt werden. An den Zwischentagen, an denen der Arbeitnehmer 24 Stunden von seiner Wohnung abwesend ist, ist eine Verpflegungspauschale von 28 Euro anzusetzen. Eine Pauschale von 14 Euro ist auch zu berücksichtigen, wenn der Arbeitnehmer seine auswärtige berufliche Tätigkeit an zwei Kalendertagen über Nacht ausübt, dabei nicht übernachtet und dadurch ebenfalls insgesamt mehr als 8 Stunden von der Wohnung oder der ersten Tätigkeitsstätte abwesend ist. Die Verpflegungspauschale von 14 Euro ist in diesen Fällen dann für den Kalendertag zu berücksichtigen, an dem der Arbeitnehmer den überwiegenden Teil der insgesamt mehr als 8 Stunden abwesend ist.

Also, sorry, Du hast auf jeden Fall Recht, >8 und nicht >=

Anzeige
AW: Reisezeit berechnen über 24 Stunden
23.09.2025 19:55:31
Peer
Hallo schauan.

Ich weiß, man kann es missverstehen.
Meines Wissens nach liegt hier der Unterschied beim Zweck.
Für die Anreise und die Abreise zur "Dienstreise" "reichen" 8 Std. Für die Dienstreise, die normalerweise am selben Tag wieder in der Heimat endet (oder im Hotel), müssen über 8 Stunden liegen. Vor ein paar Jahren war die Splittung der Zeit noch bei 8 Std, 14 Std, 24 Std.

Gruß Peer
Anzeige
AW: Reisezeit berechnen über 24 Stunden
22.09.2025 22:37:06
Peer
Hallo Daniel.
Vielen Dank für die schnelle Rückmeldung.
Ich werde mich morgen gleich mal mit deinem Vorschlag beschäftigen.

Aktuell bin ich unterwegs.
Ich melde mich dann wieder.

Gruß Peer
AW: Reisezeit berechnen über 24 Stunden
23.09.2025 16:16:27
Peer
Hallo daniel.

Ich habe jetzt auf deinen Vorschlag hin eine Bespiel-Datei erstellt und soweit ich verstanden habe, umgesetzt.
Leider komme ich noch zu keinem zufriedenstellenden Ergebnis.
datReiseTime gibt im Direktfenster bei einer Zeitdifferent innerhalb eines Tages den korrekten Wert im Format hh:mm:ss an, aber sobald ich über den Tag hinausgehe, ist das Ergebnis nicht mehr nachvollziehbar und nicht korrekt.

Ebenfalls werden in der UF im Textfeld "Reisezeit" die Werte dezimal angezeigt, und wenn ich dann mit Format(datReisezeit, "hh:mm") die Anzeige darstellen möchte, kommt ein ganz nicht nachvollziehender Wert raus.

Aktuell habe ich kein Ahnung warum ich die Angaben nicht angezeigt und berechnet bekomme, wie gewollt.

Anbei die Datei...

https://www.herber.de/bbs/user/178950.xlsm
VG Peer
Anzeige
AW: Reisezeit berechnen über 24 Stunden
26.09.2025 18:34:33
Peer
Hallo.

Kann mir niemand Hinweis(e) geben, wie ich in der Beispiel-Datei zum gewünschten Ergebnis komme oder mir sagen, was ich falsch gemacht habe?

Gruß Peer
AW: Reisezeit berechnen über 24 Stunden
28.09.2025 00:45:42
Eifeljoi 5
Hallo

Mein Tipp
Klar ist es über VBA lösbar, gar keine Frage.
Ich empfehle dir benutze eine Intelligente Tabelle wo du die ganzen Stunden einschließlich dem Datum per Hand einträgst.
Dann baust du dir eine weitere Tabelle mit den Bedingungen wann was gezahlt werden darf bzw. soll.
Jetzt kannst du deine Stunden bequem mit PQ errechnen.
Anzeige
AW: Reisezeit berechnen über 24 Stunden
28.09.2025 21:57:13
schauan
Hallöchen,

also, folgendes:

Fehler 1: Dim datReiseTime As Date
Das sollte doch eine Zeitangabe werden. und kein Datum, oder?

Fehler 2: Logik für die Reisezeitberechnung. Tage werden meist einzeln betrachtet

Die Logik wäre

(1) keine Übernachtung:

Für eintägige Auswärtstätigkeiten im Inland ohne Übernachtung ist eine Verpflegungspauschale in Höhe von 14 Euro bei einer Mindestabwesenheitsdauer von mehr als 8 Stunden als Werbungskosten abziehbar.

Endzeit minus Startzeit -> Geld bei >8h

(2) eine Übernachtung:

Bei einer mehrtägigen auswärtigen Tätigkeit mit Übernachtung kann für den An- und Abreisetag ohne Prüfung einer Mindestabwesenheitsdauer eine Verpflegungspauschale von 14 Euro als Werbungskosten berücksichtigt werden.

Tag 1: Anreisetag -> 14 €
Tag 2: Abreisetag -> 14 €
Summe 28 €

Falls das "ohne Prüfung" so gemeint ist

Anreisetag + Abreisetag -> 14 €

dann wäre die Summe 28 € so zu erreichen:
Tag 1: Anreisetag - Abreise vor 16:00 h (>8h) -> 14 €
Tag 2: Abreisetag - Rückkehr nach 8:00 h (>8h) -> 14 €

(3) mehrere Übernachtungen:

Bei einer mehrtägigen auswärtigen Tätigkeit mit Übernachtung kann für den An- und Abreisetag ohne Prüfung einer Mindestabwesenheitsdauer eine Verpflegungspauschale von 14 Euro als Werbungskosten berücksichtigt werden. An den Zwischentagen, an denen der Arbeitnehmer 24 Stunden von seiner Wohnung abwesend ist, ist eine Verpflegungspauschale von 28 Euro anzusetzen.

Tag 1: Anreisetag -> 14 €
Tag 2 bis Tag x-1 --> 28 € pro Tag
Tag x: Abreisetag -> 14 €

Falls das "ohne Prüfung" so gemeint ist

Anreisetag + Abreisetag -> 14 €

dann wäre die Summe 28 € so zu erreichen:
Tag 1: Anreisetag - Abreise vor 16:00 h (>8h) -> 14 €
Tag x: Abreisetag - Rückkehr nach 8:00 h (>8h) -> 14 €

(4) "Nachtarbeit" auswärts
--> siehe Fehler 1

Eine Pauschale von 14 Euro ist auch zu berücksichtigen, wenn der Arbeitnehmer seine auswärtige berufliche Tätigkeit an zwei Kalendertagen über Nacht ausübt, dabei nicht übernachtet und dadurch ebenfalls insgesamt mehr als 8 Stunden von der Wohnung oder der ersten Tätigkeitsstätte abwesend ist. Die Verpflegungspauschale von 14 Euro ist in diesen Fällen dann für den Kalendertag zu berücksichtigen, an dem der Arbeitnehmer den überwiegenden Teil der insgesamt mehr als 8 Stunden abwesend ist.

Tag 2 - Tag 1 > 8h --> 14 €
Tag 2 - Tag 1 >= 24h ist nicht beschrieben :-( z.B. Tag 1 ab 6:00 bis Tag 2 7:00

28 € gäbe es eventuell bei dieser Methode, wenn ohne Prüfung einer Mindestabwesenheitsdauer so gemeint ist:

Tag 1: Anreisetag -> 14 €
Tag 2: Abreisetag -> 14 €
Summe 28 €

Andererseits müsste man die 28 € dann auch bekommen, wenn man von 21:00 bis 03:00 unterwegs ist ... Wären ja zwei aufeinanderfolgende Tage. Ok, man hat beim Arbeiten eher nicht übernachtet ... Was ist eigentlich, wenn man 20:00 losfährt, von 22:30 bis 23:30 arbeitet, dann dort schläft und 05:00 bis 07:30 zurück fährt? Hat man da über Nacht gearbeitet oder übernachtet ;-) ? Wie genau ist definiert, über Nacht auswärts zu arbeiten? Würde es reichen, über Mitternacht zu arbeiten, von 23:30 bis 0:30? Also das Beispiel um eine Stunde verschieben?



Anzeige
AW: Reisezeit berechnen über 24 Stunden
28.09.2025 19:15:36
Peer
Hallo Eifeljoi 5

Vielen Dank für deinen Tipp.

Ich würde gern weiterhin eine Lösung per VBA bevorzugen, da ich die Steuerung meiner Monatstabellen schon per VBA erledigen lasse.
Außerdem würde ich die VBA-Lösung vielleicht auch für weitere VBA-unterstützen Programme verwenden.

VG Peer
Anzeige
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18