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

Zeitdifferenz VBA

Zeitdifferenz VBA
12.12.2019 18:22:40
Peer
Hallo.
Ich habe eine UF mit zeit TextBoxen für Beginn (txt_BeginnZeit) und Ende (txt_EndeZeit) und eine TextBox (txt_Reisezeit), bei der die berechnete Zeit berechnet werden soll, die auch über Mitternacht hinaus geht. Dabei ist die TextBox "txt_Reisezeit" an keine Zelle gebunden. Sie soll nur in der UF zur Info sein.
Ich habe im Change-Ereignis folgendes geschrieben, wobei ich zu keinem Ergebnis komme. Da meine ich wirklich zu keinem, nicht zu einem falschen.

Private Sub txt_Reisezeit_Change()
If Me.txt_BeginnZeit 
Was ist falsch an meiner simplen Lösung?
LG und Danke für eure Hilfe
Peer

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitdifferenz VBA
12.12.2019 18:40:52
Oberschlumpf
Hi Peer,
sobald der Befehl unter If oder unter Else durchgeführt wird, löst das immer wieder das Change-Ereignis der TxtBox aus.
Versuch es mal so:
Private Sub txt_Reisezeit_Change()
Application.EnableEvents = False
If Me.txt_BeginnZeit 

Die Methode EnableEvents deaktiviert zuerst mit False alle Ereignisse.
Die Methode muss aber nach Abarbeitung aller Befehle unbedingt wieder mit True aktiviert werden!
Tut man das nicht, wird gar kein Ereignis, z Bsp Zellwertänderung, mehr durchgeführt.
Hilfts?
Wenn nein, eine andere Idee hab ich leider nicht.
Ciao
Thorsten
Anzeige
AW: Zeitdifferenz VBA
12.12.2019 20:10:47
Peer
Hallo Thorsten.
Ich habe deinen Vorschlag probiert. Leider ohne Erfolg. Typen unverträglich bei
Me.txt_Reisezeit = DateDiff("n", Me.txt_BeginnZeit, Me.txt_EndeZeit) / 60 + 24

Auch habe ich Reginas Vorschlag genommen, aber auch hier kein Erfolg.
LG
Peer
AW: Zeitdifferenz VBA
12.12.2019 20:20:57
Peer
Selbst das funktioniert nicht. Ebenfalls Typenfehler 13
Private Sub txt_BeginnZeit_Change()
Dim Beginn As Date, Ende As Date, Summe As Date
Beginn = CDate(Me.txt_BeginnZeit)
Ende = CDate(Me.txt_EndeZeit)
Summe = CDate(Me.txt_Reisezeit)
Application.EnableEvents = False
If Beginn 

Anzeige
AW: Zeitdifferenz VBA
12.12.2019 21:52:26
Matthias
Moin!
Gehe lieber über das Exit Event. Wenn du sonst in der Textbox was einträgst, springt schon beim 1. Zeichen der Code an und läuft in einen Fehler. Zudem musst du abfangen, wenn die Box leer ist. SOnst gibt es auch bei Date einen Fehler. Alternativ kannst du auch das Change nutzen. Dann musst du aber abfangen, dass mindestens soviel Zeichen wie eine Uhrzeit / Datum dastehen eingetragen sind. Hier mal ein Beispiel für Exit:

Private Sub txt_EndeZeit_Exit(ByVal Cancel As MSForms.ReturnBoolean)
zeit_berechnung
End Sub
Private Sub txt_BeginnZeit_Exit(ByVal Cancel As MSForms.ReturnBoolean)
zeit_berechnung
End Sub
Sub zeit_berechnung()
Dim Beginn As Date, Ende As Date, Summe As Date
If Me.txt_BeginnZeit = "" Or Me.txt_EndeZeit = "" Then Exit Sub
Beginn = CDate(Me.txt_BeginnZeit)
Ende = CDate(Me.txt_EndeZeit)
Application.EnableEvents = False
If Beginn 

VG
Anzeige
AW: Zeitdifferenz VBA
12.12.2019 22:10:18
Peer
Hallo Matthias.
Super Tipp. Danke.
Aber beim Ergebnis kommt nur eine Ganzzahl raus. Wie kann ich hh:mm anzeigen lassen? Auch möchte ich den Wert eventuell später für Berechnungen hernehmen.
frm_Tag.txt_Reisezeit = Format(CDate(Summe),"hh:mm")

Hat nichts gebracht.
LG
Peer
AW: Zeitdifferenz VBA
13.12.2019 09:22:51
Matthias
Moin!
Zur Anzeige von Zahlen, den Code so abändern:
Me.txt_Reisezeit = Format(CDbl(Summe) / 24, "hh:mm")

Für spätere Berechnungen kannst du den Wert ja in einer globalen Variablen zwischenspeichern. ggf. kannst du ihn auch in ein ausgeblendetes Conrols (Lable, TB etc.) packen oder wieder aus der txt_Reisezeit auslesen. WEiß jetzt nicht, wie der Ablauf werden soll und ob die Datn weiter bestehen oder weg sind.
VG
Anzeige
AW: Zeitdifferenz VBA
13.12.2019 19:24:49
Peer
Hi Matthias.
Wenn ich dich nicht hätte...
Vielen Dank, das war's
LG
Peer
AW: Zeitdifferenz VBA
12.12.2019 18:54:42
Regina
Hi Peer,
vielleicht denke ich faslch, aber warum nutzt Du das Change-Ereignis von txt_Reisezeit, hier soll doch nur das Ergebnis stehen. Müsstest Du nicht das Change-Ereignis von txt_Beginnzeit und das von txt_Endezeit nutzen? Wenn sich in einem dieser Felder etwas ändert, soll doch neu berechnet werden, oder?
Gruß
Regina
AW: Zeitdifferenz VBA
12.12.2019 20:08:57
Peer
Hallo Regina
Habe deinen Vorschlag beherzigt und jeweils Oberschlumpfs Code genommen. Aber leider ohne Erfolg.
LG
Peer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige