Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1596to1600
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
UserForm Datum minus Datum
14.12.2017 11:51:31
Sandro
Hallo liebes Forum
Ich habe 3 UserFormen
1 -> Datum Eingang
2 -> Datum geplantes Ende
3 -> Geplante Dauer
Ziel ist es, dass in der 3. Box die Differenz der beiden Daten (in Tagen) berechnet wird. Mit meinem jetzigen Code funktioniert dies aber leider nicht:
Private Sub Geplante_Dauer_rechnen()
If Datum_Eingang_Auftrag.Text = "" Then Exit Sub
With Geplante_Dauer
Geplante_Dauer.Text = (Val((DateValue(Datum_Bestätigtes_Ende) - DateValue( _
Datum_Eingang_Auftrag)))) 'Berechnung Geplante Dauer
End With
End Sub

Weiss jemand Rat um dieses Problem zu lösen?
Danke & Gruss
Sandro

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserForm Datum minus Datum
14.12.2017 12:04:48
yummi
hallo Sandro,
nimme datediff
Geplante_Dauer.Text = DateDiff("d", DateSerial(Year(Cells(1, 1).Value), Month(Cells(1, 1).Value), Day(Cells(1, 1).Value)), DateSerial(Year(Cells(1, 2).Value), Month(Cells(1, 2).Value), Day(Cells(1, 2).Value)))
ich weiß nciht wie du deien Userform aufgebaut hast du musst cells1,1 erstzen durch edein start und Cells(1,2) durch dein enddatum
Gruß
yummi
AW: UserForm Datum minus Datum
14.12.2017 12:27:34
Sandro
Hallo Yummi
Vielen Dank für die rasche Rückmeldung.
Habe deinen Code getestet, er sieht nun folgendermassen aus:
Private Sub Geplante_Dauer_rechnen()
If Datum_Eingang_Auftrag.Text = "" Then Exit Sub
With Geplante_Dauer
Geplante_Dauer.Text = DateDiff("d", DateSerial(Year(Datum_Eingang_Auftrag).Value), Month( _
Datum_Eingang_Auftrag).Value),Day(Datum_Eingang_Auftrag).Value)), DateSerial(Year(Datum_Bestätigtes_Ende).Value), Month(Datum_Bestätigtes_Ende).Value), Day(Datum_Bestätigtes_Ende).Value))) 'Berechnung Kosten Geplante Dauer
End With
End Sub
Leider kommt immer die Fehlermeldung "Erwartet: Anweisungsende" und zwar markiert er das Komma nach dem 2. "Value". Kannst du mir weiterhelfen?
Gruss
Sandro
Anzeige
AW: UserForm Datum minus Datum
14.12.2017 12:34:36
yummi
Hallo Sandro,
DateDiff("d", DateSerial(Year(Datum_Eingang_Auftrag.Value), Month(Datum_Eingang_Auftrag.Value),Day(Datum_Eingang_Auftrag.Value)), DateSerial(Year(Datum_Bestätigtes_Ende.Value), Month(Datum_Bestätigtes_Ende.Value), Day(Datum_Bestätigtes_Ende.Value))) 'Berechnung Kosten Geplante Dauer
es kan nsein dass du anstatt .value .text nehmen musst, falls deine Datum_Eingang_Auftrag eine Textbox ist (gilt für beide.
in eienr userform besser so ansprechen:
me.textbox.text
wobeitextbox durch dein vergebenen namen ersetzt werden muss.
Gruß
yummi
AW: UserForm Datum minus Datum
14.12.2017 13:28:10
Sandro
Hallo Yummi
Leider funktioniert der Code weder mit .value noch mit .text "Unverträgliche Typen" es sieht nun so aus:
Private Sub Geplante_Dauer_rechnen()
If Datum_Eingang_Auftrag.Text = "" Then Exit Sub
With Geplante_Dauer
Geplante_Dauer.Text = DateDiff("d", DateSerial(Year(Me.Datum_Eingang_Auftrag.Text), Month( _
Me.Datum_Eingang_Auftrag.Text), Day(Me.Datum_Eingang_Auftrag.Text)), DateSerial(Year(Me.Datum_Bestätigtes_Ende.Text), Month(Me.Datum_Bestätigtes_Ende.Text), Day(Me.Datum_Bestätigtes_Ende.Text))) 'Berechnung Kosten Geplante Dauer
End With
End Sub
Datum_Eingang_Auftrag & Datum_Bestätigtes_Ende sind beides TextBoxen. In die Boxen wird das Datum eingetragen. folgender Code überprüft dann das Format beim Verlassen der Box:
Private Sub Datum_Eingang_Auftrag_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Datum_Eingang_Auftrag.Text = "" Then Exit Sub
If IsDate(Datum_Eingang_Auftrag.Text) Then
Datum_Eingang_Auftrag.Text = Format(Datum_Eingang_Auftrag.Text, "DD.MM.YYYY")
Format_Datum.Visible = False
Else
Format_Datum.Visible = True
Datum_Eingang_Auftrag.Value = ""
End If
End Sub
Weisst du noch weiter was ich versuchen kann? Würde es Helfen, wenn ich das ganze File hoch lade?
Gruss
Sandro
Anzeige
AW: UserForm Datum minus Datum
14.12.2017 13:30:55
yummi
Hallo sandro,
ja lad mal hoch
AW: UserForm Datum minus Datum
14.12.2017 13:50:56
Sandro
Hallo Yummi
https://www.herber.de/bbs/user/118328.xlsm
Hier das File, es ist noch nicht alles fertig, bin einfach bei der Geplanten Dauer stecken geblieben...
Danke für deine Mühe!
Gruss
Sandro
AW: UserForm Datum minus Datum
14.12.2017 14:13:19
yummi
Hallo Sandro,
du rechnest zu früh!
lösch mal

Private Sub Datum_Eingang_Auftrag_change()
'If Datum_Eingang_Auftrag.Text = "" Then Exit Sub
'Geplante_Dauer_rechnen
End Sub
Private Sub Datum_Bestätigtes_Ende_change()
'If Datum_Bestätigtes_Ende.Text = "" Then Exit Sub
'Geplante_Dauer_rechnen
End Sub
und ruf Geplante_Daer_Berechnen in Erfassen_click auf

Private Sub Erfassen_Click()
If Tätigkeit.Text = "" Or Name_Bearbeiter = "" Or Auftragsbezeichnung = "" Or  _
Datum_Eingang_Auftrag = "" Or Datum_Bestätigtes_Ende = "" Then
MsgBox "Alle Pflichtfelder ausfüllen!" 'wenn eines der Felder leer ist dann Meldung
Else
Geplante_Dauer_rechnen
Bei deienr Version musst du bei jeder eingabe abfragen, ob schon beide datum vollständig sind und erst dann rechnen, reicht doch auch wenn du den button drückst.
Falls das nicht reicht musst du abfragen vor aufruf der rechnung überprüfen, das die eingaben vollständig ist.
Du könntest das Feld auch weglassen und den wert direkt in dein tabellenblatt schreiben so wie jetzt.
Gruß
yummi
Anzeige
AW: UserForm Datum minus Datum
14.12.2017 14:54:22
Sandro
Hallo Yummi
Jetzt funktioniert es wunderbar! Das war die Lösung, wusste nicht, dass das Rechnen einen solchen Einfluss hat. Ich danke dir ganz herzlich für deine Geduld.
Gruss
Sandro

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige