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

VBA: Monate addieren \letzten Tag berechnen

VBA: Monate addieren \letzten Tag berechnen
22.04.2017 21:10:57
jam
Hallo zusammen,
Ich hoffe, ihr könnt mir helfen.
Folgende Anforderung:
Auf das eingegebene Startdatum sollen immer 18 Monate addiert werden.
Das Enddatum muss aber, wenn es nötig wird, immer mit dem letzten Tag des (Vor-)Monats abschliessen.
Beispiel 1:
Startdatum: 01.05.2017
Enddatum: 31.10.2018 UND NICHT 01.11.2018
Beispiel 2:
Startdatum: 02.06.2017
Enddatum: 30.11.2018 UND NICHT 01.12.2018
Mit dem u.g. vba String addiere ich die 18 Monate auf das Startdatum, aber wie muss der Code lauten, damit die 18 Monate, wenn es notwendig wird, auf den letzten Tag des Vormonats berechnet werden und nicht auf den ersten Tag des Folgemonats?
dtNewDate = DateAdd("m", 18, dtOldDate)
Vielen Dank für eure Hilfe\Lösungsansätze.
Gruss

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: Monate addieren \letzten Tag berechnen
22.04.2017 21:38:59
Luschi
Hallo jam,
dann teste mal diesen Vba-Code

Sub test1()
dtOldDate = CDate("01.05.2017")
dtNewdate = DateAdd("m", 18, dtOldDate)
Debug.Print dtNewdate
dtNewdate = DateSerial(Year(dtNewdate), Month(dtNewdate), 0)
Debug.Print dtNewdate
dtOldDate = CDate("08.05.2017")
dtNewdate = DateAdd("m", 18, dtOldDate)
Debug.Print dtNewdate
dtNewdate = DateSerial(Year(dtNewdate), Month(dtNewdate), 0)
Debug.Print dtNewdate
End Sub
Gruß von Luschi
aus klein-Paris
AW: VBA: Monate addieren \letzten Tag berechnen
22.04.2017 21:44:51
Werner
Hallo Jam,
zum Testen, dtOldDate steht in Zelle A1
Public Sub aaa()
Dim dtOldDate As Date
Dim dtNewDate As Date
dtOldDate = Range("A1")
dtNewDate = WorksheetFunction.EoMonth(DateAdd("m", 18, dtOldDate), -1)
MsgBox dtNewDate
End Sub
Gruß Werner
Anzeige
AW: VBA: Monate addieren \letzten Tag berechnen
22.04.2017 22:13:15
Gerd
Hallo
Sub ccc()
Dim dteOld As Date, dteNew As Date, lngMonth As Long
lngMonth = 18
dteOld = CDate("01.05.2017")
dteNew = DateSerial(Year(dteOld), Month(dteOld) + lngMonth, 0)
MsgBox dteOld & vbLf & lngMonth & vbLf & dteNew
End Sub

Gruß Gerd
Antworten-ja, mehrere / Feedback-nein, schade
27.04.2017 09:53:54
Werner

55 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige