Kategorien
CodeArchiv Datum VBA

VBA Datum minus X Monate

Beschreibung

Um von einem Datum eine bestimmte Anzahl von Monaten zu subtrahieren kann die nachfolgende Funktion genutzt werden.

Benötigt: MaxDayMonth

Parameter

Parameter NameParameter Wert
DDateDatum zu dem die X Monate abgezogen werden sollen
ValMonthZahl der Monate die abgezogen werden.

Rückgabe

Rückgabe TypRückgabe Wert
DateDas Ergebnis der Subtraktion

Beispiel

debug.Print MonthSub("10.10.2017",5)
10.05.2017

Code

Public Function MonthSub(DDate As Date, ValMonth As Integer) As Date 
	Dim M As Integer 
	Dim Y As Integer
	Dim d As Integer
	Dim dd As Date
	d = Day(DDate)
	M = Month(DDate)
	Y = Year(DDate)
	M = M - ValMonth
	While M < 0
		Y = Y - 1
		M = M + 12
	Wend
	If d > MaxDayMonth(DateSerial(Y, M, 1)) Then
		d = MaxDayMonth(DateSerial(Y, M, 1))
	End If
	MonthSub = DateSerial(Y, M, d)
End Function

Download