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

Errechneter Zeitwert minus Pause

Errechneter Zeitwert minus Pause
13.02.2020 15:45:10
Peer
Hallo.
Ich habe in eiern UF Textfelder mit den Anfangs- und Endzeiten (txt_Beginn und txt_Ende) und einem ArbZeit-Textfeld (txt_ArbZeit). Zusätzlich habe ich noch drei Radiobutton, die "keine", "30 min" oder "45 min" von txt_ArbZeit abziehen sollen.
txt_ArbZeit wird durch die Sub AZ_Berechnung (Danke der Hilfe hier im Forum) errechnet.
Sub AZ_berechnung()
Dim Beginn As Date, ende As Date, Summe As Date
If frm_Tag.txt_ArbZ_Beginn = "" Or frm_Tag.txt_ArbZ_Ende = "" Then Exit Sub
Beginn = CDate(frm_Tag.txt_ArbZ_Beginn)
ende = CDate(frm_Tag.txt_ArbZ_Ende)
Application.EnableEvents = False
If Beginn 
Private Sub opt_Pause30_Change()
txt_ArbZeit = Format(txt_ArbZeit - TimeSerial(0, 30, 0), "hh:mm")
End Sub
funktioniert nicht (Fehlermeldung Debugger)
Private Sub txt_ArbZeit_Change()
If opt_Pause30.Value = True Then
txt_ArbZeit = Format(txt_ArbZeit - TimeSerial(0, 30, 0), "hh:mm")
End If
End Sub
Hier habe ich auch keinen Erfolg.
Vielleicht kann jemand helfen?
Vielen Dank im Voraus
Anbei eine Beispiel-Mappe
https://www.herber.de/bbs/user/135182.xlsm
In den beiden Monats-Sheets im Range B12:B42 mit Rechtsklick die UF öffnen.
LG
Peer

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

Betreff
Datum
Anwender
Anzeige
AW: Errechneter Zeitwert minus Pause
13.02.2020 17:04:36
Werner
Hallo,
Private Sub opt_Pause0_Click()
AZ_berechnung
End Sub
Private Sub opt_Pause30_Click()
AZ_berechnung
txt_ArbZeit = Format(CDate(txt_ArbZeit) - TimeSerial(0, 30, 0), "hh:mm")
End Sub
Private Sub opt_Pause45_Click()
AZ_berechnung
txt_ArbZeit = Format(CDate(txt_ArbZeit) - TimeSerial(0, 45, 0), "hh:mm")
End Sub

Gruß Werner
AW: Errechneter Zeitwert minus Pause
13.02.2020 17:33:16
Peer
Danke, Werner.
An diese Lösung habe ich gar nicht gedacht.
Ich habe mit meinem bescheidenden VBA Kenntnissen folgendes in die Sub geschrieben...
Sub AZ_berechnung()
Dim Beginn As Date, ende As Date, Summe As Date
If frm_Tag.txt_ArbZ_Beginn = "" Or frm_Tag.txt_ArbZ_Ende = "" Then Exit Sub
Beginn = CDate(frm_Tag.txt_ArbZ_Beginn)
ende = CDate(frm_Tag.txt_ArbZ_Ende)
Application.EnableEvents = False
If Beginn 
und jeden Radiobutton

AZ_berechnung
zu geordnet.
Ist die Idee gut oder schlecht, auch wenn es funktioniert?
LG
Peer
Anzeige
AW: Errechneter Zeitwert minus Pause
13.02.2020 17:56:33
Luschi
Hallo Peer,
ich finde die Version von Werner einfacher lesbar. Kommen noch mehr Optionbuttons für Pausen oder andere Zeitkonten-Berechnungen hinzu, wird der AZ-Berechnungs-Code dadurch nicht übersichtlicher und die OptionButtons haben ja den Vorteil, daß nur eins von den Dingern aktiv sein kann; bei Checkboxen wäre das was Anderes, aber auch da würde ich den Code dafür auslagern.
Gruß von Luschi
aus klein-Paris
AW: Errechneter Zeitwert minus Pause
13.02.2020 18:16:28
Peer
Hallo Luschi.
Vielen Dank für die Erklärung.
Ich habe noch weitere Radiobutton, die mit Auswahl die Beginn- und Endzeiten beschreiben und einer der drei Pause-Radiobutton aktivieren.
Dann kommt das Click_Event nicht mehr zum Tragen.
Dann werde ich wohl besser das Change_Event nehmen, oder?
Gruß
Peer
Anzeige
AW: Errechneter Zeitwert minus Pause
13.02.2020 18:28:31
Peer
Hallo Luschi und Werner.
Jetzt habe ich einmal Werners Version genommen, und nun muss ich feststellen, das nach jedem Hin und Her Klicken zwischen Pause 0 und Pause 30 die Arbeitszeit um 30 min herunter gezählt wird.
Ist ja auch logisch, da die txt_ArbZeit neu definiert.

Mache ich etwas falsch? Denke ich falsch?
Gruß
Peer
AW: Errechneter Zeitwert minus Pause
13.02.2020 21:14:28
Werner
Hallo,
nein, hast du nicht.
Du hast in deiner Sub Sub AZ_berechnung() Änderungen vorgenommen- Davon habe ich nichts geschrieben. Ich hatte dir nur den Code für die drei Optionbutton geschickt und nicht mehr.
Weshalb du in der Sub Änderungen vorgenommen hast kannst nur du wissen.
Gruß Werner
Anzeige
AW: Errechneter Zeitwert minus Pause
13.02.2020 21:26:50
Peer
Hallo Werner.
Alles klar.
Eindeutig mein Fehler.
Bin bei deinem Code geblieben.
Danke dafür.
LG
Peer
AW: Errechneter Zeitwert minus Pause
13.02.2020 21:38:46
Peer
Hallo Werner.
Alles klar.
Eindeutig mein Fehler.
Bin bei deinem Code geblieben.
Danke dafür.
LG
Peer
Gerne u. Danke für die Rückmeldung. o.w.T.
13.02.2020 22:46:03
Werner
AW: Errechneter Zeitwert minus Pause
13.02.2020 17:45:49
Luschi
Hallo Peer,
innerhalb von Formularen hat 'Application.EnableEvents = False' für die Ereignis-Routinen der _ Steuerelement und des Formulars keine Auswirkung - sie werden damit nicht unterdrückt!

Application.EnableEvents = False
frm_Tag.txt_ArbZeit = Format(CDbl(Summe) / 24, "hh:mm")
Application.EnableEvents = True
Ist das Event 'Private Sub txt_ArbZeit_Change()' definiert, so tritt es auch ein trotz 'Application.EnableEvents = False'. Eine angemessenen Befehl für diese Fälle kenne ich nicht. Hier befelfe ich mich mit boolschen Variablen.
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Errechneter Zeitwert minus Pause
13.02.2020 18:18:26
Peer
Hallo Luschi.
Interessant und gut zu wissen, auch wenn es für mich "noch" hohe Mathematik ist.
LG
Peer

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige