Forum: PC-Programmierung Excel VBA - Zeitdifferenz


von Jan H. (janiiix3)


Lesenswert?

Hi Community,

ich stehe gerade mega auf dem Schlauch.
Für ein Makro möchte ich gerne die Differenz dazwischen berechnen.

Mit "DateDiff" bekomme ich es nicht richtig hin.
Es müssten ja eigentlich = 10 Std. sein.
Für Excel ist es natürlich ein "ganzer" Tag.
Wie bekomme ich jetzt die reine Differenz da raus?
Ist mit Sicherzeit ziemlich simpel..
20:00 Uhr - 06:00 Uhr

von Peter M. (r2d3)


Lesenswert?

Hall Naj H.,

Naj H. schrieb:
> Hi Community,
>
> ich stehe gerade mega auf dem Schlauch.
> Für ein Makro möchte ich gerne die Differenz dazwischen berechnen.

Schön! Wir wissen zwar nicht, wozwischen eine Differenz berechnet werden 
soll, aber die Differenz berechnet man gerne mit einem Verfahren, das 
man "Subtraktion" nennt.

> Mit "DateDiff" bekomme ich es nicht richtig hin.

Ach, es sollen Kalenderdaten subtrahiert werden?

> Es müssten ja eigentlich = 10 Std. sein.

Wie meinen? Also wenn das Ergebnis schon bekannt ist, wieso dann die 
Frage hier?

> Für Excel ist es natürlich ein "ganzer" Tag.

Und wieder folgt eine zusammenhangslose Aussage. Was ist "es"?

> Wie bekomme ich jetzt die reine Differenz da raus?

Durch Subtraktion.

> Ist mit Sicherzeit ziemlich simpel..
> 20:00 Uhr - 06:00 Uhr

Macht bei mir vierzehn Stunden. Aber sollen es nicht 10 Stunden sein, 
wie oben geschrieben?

Wenn es Probleme beim Subtrahieren gibt, sollte man schon sagen, was man 
subtrahieren will und in welchem Format die Eingangsdaten vorliegen.

Man sollte schon versuchen, das Problem so darzustellen, dass ein 
Unkundiger Dritter die Problemstellung nachvollziehen kann!

: Bearbeitet durch User
von Jan H. (janiiix3)


Lesenswert?

Peter M. schrieb:

Biste im wahren Leben auch so Lustig?
Klasse Typ!

von Peter M. (r2d3)


Lesenswert?

Hallo Naj H.,

Naj H. schrieb:
> Peter M. schrieb:
>
> Biste im wahren Leben auch so Lustig?
> Klasse Typ!

Nein, da bin ich eigentlich vollkommen humorbefreit.

von Jan H. (j_hansen)


Lesenswert?

Naj H. schrieb:
> Peter M. schrieb:
>
> Biste im wahren Leben auch so Lustig?
> Klasse Typ!

Auch wenn ich Kritik am rauen Umgangston nachvollziehen kann, so 
solltest du "Peter M."s Post durchaus ernst nehmen.

-) Deine Problemstellung ist missverständlich formuliert. Was möchtest 
du genau tun und was hast du schon probiert?
-) Ist eine einfache Subtraktion eventuell was du suchst?

von VBA Profi (Gast)


Lesenswert?

Ergebnis in Sekunden:
1
Option Explicit
2
3
Dim startTime As Date
4
Dim stopTime As Date
5
    
6
Sub StartTimer()
7
    startTime = Now
8
End Sub
9
10
Sub StopTimer()
11
    stopTime = Now
12
End Sub
13
14
Sub Show()
15
    Debug.Print DateDiff("s", startTime, stopTime)
16
End Sub

von Tobias S. (x12z34)


Lesenswert?

Peter M. schrieb:
>> Ist mit Sicherzeit ziemlich simpel..
>> 20:00 Uhr - 06:00 Uhr
>
> Macht bei mir vierzehn Stunden. Aber sollen es nicht 10 Stunden sein,
> wie oben geschrieben?

Naja: der Zeitraum Tag x 20:00 bis Tag (x+1) 06:00 sind schon 10 
Stunden.
Das unterstreicht aber umso mehr, dass es wichtig ist, genau zu 
formulieren, was gewünscht wird ;-)

von Dirk B. (dirkb2)


Lesenswert?

Naj H. schrieb:
> Für Excel ist es natürlich ein "ganzer" Tag.

Nur wenn du DateDiff falsch benutzt.

Excel rechnet in Tagen.
Teile davon sind dann Nachkommastellen. 0,5 entspricht 12 Stunden, bzw. 
12:00

So kannst du die Differenz auch selber ausrechnen

(Datum2 - Datum1) * 24 ergibt die Stunden.

von Schlaumaier (Gast)


Lesenswert?

https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/datediff-function

Man beachte Parameter 1 .;)

Ich würde die Funktion 2 x aufrufen. Mit unterschiedlichen Parameter 1.

Den Rest dann mit einer einfachen Formel berechnen.

von Manfred S. (Firma: Manfred) (xfred343)


Lesenswert?

Wie wärs mit
(stopTime-startTime)*24*3600
Das ist dann die Differenz in Sekunden, die kannst dann in alle 
möglichen anderen Formate umformen
sekundenTotal=(stopTime-startTime)*24*3600
minuten=int(sekunden/60)
sekunden=sekundenTotal mod 60
usw.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.