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

Forumthread: Differenz zwischen datums

Differenz zwischen datums
19.05.2008 09:01:35
chris
Hallo VBA Experten,
guten morgen.Habe eine frage.
wie kann ich diesen Code so umbauen das ich angezeigt bekommen wie viele Stunden differenz
zwischen den beiden Datums sind ?
und wenn es mehere Tage sind dann soll engezeigt werden z.b 50 Stunden für 2 Tage und 2 Stunden.
Aber auch Wochenenden sollen abgezogen werden wenn dazwischen.
Kann mir jemand helfen. Vielen Dank
in Datend und Datstart stehen jeweils Datums.
und in TimeStart und Timeend jeweils Uhrzeiten
Dim DatEnd As Date
Dim DatStart As Date
Dim TimeStart As Date
Dim TimeEnd As Date
DatEnd = DatEnd & " " & TimeEnd
DatStart = DatStart & " " & TimeStart
MsgBox Int(CDbl(DatEnd) - CDbl(DatStart)) & "Tag " & Format(DatEnd - DatStart, "hh:mm:ss\h")

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Differenz zwischen datums
19.05.2008 11:30:39
fcs
Hallo Chris,
leider funktioniert unter VBA die Formatdarstellung [h]:mm:ss, die die Stunden in der Tabelle über Tage summiert darstellt, in der MsgBox-Anzeige nicht.
Deshalb muss man Stunden, Minuten und Sekunden für die MsgBox-Anzeige separat berechnen.
Gruß
Franz

Sub ZeitDifferenz2()
Dim DatEnd As Date
Dim DatStart As Date
Dim TimeStart As Date
Dim TimeEnd As Date
Dim Timediff As Date
Dim Stunden As Integer, Minuten As Integer, Sekunden As Integer
DatStart = Cells(1, 2)
TimeStart = Cells(2, 2)
DatEnd = Cells(3, 2)
TimeEnd = Cells(4, 2)
For Tag = DatStart To DatEnd
Select Case Weekday(Tag, vbMonday)
Case 6, 7 ' Samstag, Sonntag
Timediff = Timediff + 0
Case Else
If Tag = DatStart Then
Timediff = 1 - TimeStart
ElseIf Tag = DatEnd Then
Timediff = Timediff + TimeEnd
Else
Timediff = Timediff + 1
End If
End Select
Next
Stunden = Int(Timediff * 24)
Minuten = Round((Timediff - Stunden / 24) * 24 * 60, 0)
Sekunden = Round((Timediff - Stunden / 24 - Minuten / 24 / 60) * 24 * 3600, 0)
MsgBox "Zeitdifferenz " & Format(DatStart + TimeStart, "DDD DD.MM.YYYY hh:mm:ss") & " bis " _
& Format(DatEnd + TimeEnd, "DDD DD.MM.YYYY hh:mm:ss") & vbLf _
& "ohne Wochenendtage: " & Format(Stunden, "0") _
& Format(Minuten, """:""00") _
& Format(Sekunden, """:""00")
End Sub


Anzeige
AW: Differenz zwischen datums
19.05.2008 11:42:41
chris
Ohh das scheint mir recht kompliziert:
Ist ja echt super deine Hilfe.Dafür vielen Dank !!!!!!!!!
Muss ich mir mal durchschauen.
Schönen tag noch !
;

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

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