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

Datumsberechnung mit UF

Datumsberechnung mit UF
04.04.2015 12:36:29
Fabi


Hallo Forum
Ich habe mir eine kleine UserForm gebastelt
Datei:

Die Datei https://www.herber.de/bbs/user/96866.xlsm wurde aus Datenschutzgründen gelöscht


Ziel ist es, Anfangsdatum einzugeben
Bsp.:
Das nächste Datum soll immer 1 Woche nach dem Anfangsdatum sein
(Anfang: 1.1.2015 - Nächste: 8.1.2015)
Enddatum soll immer in Abhängigkeit von der Wochenanzahl sein
(Anfang: 1.1.2015 - Nächste: 8.1.2015 - Wochenanzahl: 5 - Ende: 5.2.2015 )
Kann mir irgendjemand dabei helfen, wie ich dies realisieren kann, dass automatisch weiter gezählt wird?
Dass das Monatsende erkannt wird (wie im Bsp.)
Dass das Jahresende erkannt wird
Falls jemand noch Verbesserungsvorschläge hat, ich bin für alles offen
Danke an alle
Fabi

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

Betreff
Datum
Anwender
Anzeige
AW: Datumsberechnung mit UF
04.04.2015 12:43:13
Hajo_Zi
Textbox2=5*7+Cdate(Textbox1)

AW: Datumsberechnung mit UF
04.04.2015 13:17:59
RPP63
Hallo!
Du machst es Dir etwas umständlich, weil Du den Monatsnamen ausschreibst.
Ich habe die ErgebnistextBoxes disabled.
Probiere mal:
Private Sub CommandButton1_Click()
TextBox4 = CDate(ComboBox4 & "." & ComboBox5 & " " & ComboBox4) + 7
TextBox6 = CDate(TextBox4) - 7 + CInt(TextBox5) * 7
End Sub

Datei im Anhang.
https://www.herber.de/bbs/user/96867.xlsm
Gruß Ralf

AW: Datumsberechnung mit UF
04.04.2015 14:56:45
Fabi
hey Ralf
danke für deine Lösung.
grüße Fabi

Anzeige
In Excel TEXT(), in VBA Format()
04.04.2015 16:18:04
RPP63
Hi Fabi!
Formatiere den Text der TextBox als Text, der aussieht wie ein Datum:
Private Sub CommandButton1_Click()
TextBox4 = Format(CDate(ComboBox4 & "." & ComboBox5 & " " & ComboBox4) + 7, "dd.mmmm yyyy")
TextBox6 = Format(CDate(TextBox4) - 7 + CInt(TextBox5) * 7, "dd.mmmm yyyy")
End Sub

Bedenke bei Deinen weiteren Projekten, dass es sich immer noch um Text handelt, der von VBA erst in ein gültiges Datum (sprich 0 > Ganzzahl < 10000) umgewandelt werden muss.
Gruß Ralf

0 < Ganzzahl < 10000 wäre wohl richtiger ...
04.04.2015 20:28:43
Luc:-?
…gewesen, Ralf; ;-]
außerdem steht die xlFkt TEXT als WorksheetFunction.Text auch in VBA zV und bietet dann teils mehr, teils andere Möglichkeiten als die vbFkt Format. Sie sind also nicht gleichzusetzen!
Gruß + FrOst, Luc :-?

Anzeige
"noch richtiger", Luc ...
05.04.2015 10:15:05
RPP63
... ist ja 0<Ganzzahl<2.958.465
Ich habe die wks-fkt noch nie in VBA benutzt, halte ich aber im Hinterstübchen.
Dito FrOst,
Ralf

'Richtiger' heißt ja nicht 'ganz richtig'! ;-) owT
05.04.2015 11:55:57
Luc:-?
:-?

"Am richtigsten": +1 :-) owT
05.04.2015 12:27:41
RPP63

AW: Datumsberechnung mit UF
04.04.2015 15:10:47
Fabi
Hey
jetzt wird das Monat als Zahlen ausgegeben
Wie mache ich das, dass die Monate als Namen ("Januar") ausgegeben werden?
danke
Fabi

Datum + x Wochen in UF
04.04.2015 16:41:28
Erich G.
Hi Tabi,
hier mal ein etwas anderer Codevorschlag.
Die Liste der Monate in der Tabelle1 wird nicht gebraucht.
Wenn ein unmögliches Anfangsdatum vorgegeben wird, erscheint eine Fehlermeldung.
(Gib doch mal einen 31. April ein...)

Private Sub UserForm_Initialize()
Dim ii As Long
For ii = 1 To 31
ComboBox4.AddItem ii                   ' Tage
Next
For ii = 1 To 12                          ' Monate
ComboBox5.AddItem Format(DateSerial(0, ii, 1), "mmmm")
Next
For ii = Year(Now) + 1 To 1978 Step -1
ComboBox6.AddItem ii                   ' Jahre
Next ii
End Sub
Private Sub CommandButton1_Click()
Dim dd As Integer, datA As Date
dd = Month(CDate("1." & ComboBox5 & " " & ComboBox6))
dd = Day(DateSerial(ComboBox6, dd + 1, 0))
If dd < CInt(ComboBox4) Then
MsgBox "Unmögliches Anfangsdatum:" & vbLf & vbLf & "Der " & ComboBox5 & _
" " & ComboBox6 & " hat nur " & dd & " Tage.", vbCritical
Else
datA = CDate(ComboBox4 & "." & ComboBox5 & " " & ComboBox6)
TextBox4 = Format(datA + 7, "d. mmmm yyyy")
TextBox6 = Format(datA + TextBox5 * 7, "d. mmmm yyyy")
End If
End Sub
Rückmeldung wäre nett! - Grüße aus Kamp-Lintfort von Erich

Anzeige
AW: Datum + x Wochen in UF
04.04.2015 17:10:54
Fabi
Hey Erich G,
deine Lösung ist natürlich auch nicht schlecht- so erkennt man, wenn das Datum gar nicht existiert
danke dir dafür
grüße Fabi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige