ich möchte mittels VBA den letzten Tag des Vorquartals bestimmen...
...angenommen wir schreiben heute den 10.03.2022 so würde ich als Ergebnis den 31.12.2021 benötigen.
Gibt es da ein einfaches Coding zu?
Vielen Dank vorab.
Viele Grüße
Addi
Public Function VorQuartal(Optional ByVal Datum As Date) As Date
If Datum = 0 Then Datum = Now
VorQuartal = DateSerial(Year(Datum), (DatePart("q", Datum) * 3) - 2, 0)
End Function
Sub test()
Dim i, D
For i = 1 To 28
D = DateSerial(2022, i, 0)
Debug.Print i, D, VorQuartal(D)
Next
End Sub
Die Funktion wird in Excel genau wie eine Excel-Formel verwendet, mit oder ohne Argument. Ohne Argument wird das heutige Datum verwendet.
=DATUM(JAHR(A1);GANZZAHL((MONAT(A1)-1)/3)*3+1;0)
Um den letzten Tag des Vorquartals in Excel zu ermitteln, kannst du eine benutzerdefinierte Funktion (UDF) in VBA erstellen. Folge diesen Schritten:
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
Klicke im Menü auf Einfügen > Modul, um ein neues Modul zu erstellen.
Füge den folgenden Code in das Modul ein:
Public Function VorQuartal(Optional ByVal Datum As Date) As Date
If Datum = 0 Then Datum = Now
VorQuartal = DateSerial(Year(Datum), (DatePart("q", Datum) * 3) - 2, 0)
End Function
Um die Funktion zu testen, kannst du den folgenden Code verwenden:
Sub test()
Dim i As Integer, D As Date
For i = 1 To 28
D = DateSerial(2022, i, 0)
Debug.Print i, D, VorQuartal(D)
Next
End Sub
Schließe den VBA-Editor und kehre zu deinem Arbeitsblatt zurück.
Verwende die Funktion in einer Zelle, indem du =VorQuartal(A1) eingibst, wobei A1 das Datum enthält, für das du den letzten Tag des Vorquartals bestimmen möchtest.
Fehler: „Der Wert ist ungültig.“
Fehler: „Funktion nicht definiert.“
Fehler: UDF gibt ein falsches Datum zurück.
Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch eine Excel-Formel nutzen, um das Quartalsende zu bestimmen. Hier ist eine mögliche Formel:
=DATUM(JAHR(A1);MONAT(A1)-REST(MONAT(A1)-1;3);0)
Diese Formel gibt das letzte Datum des Vorquartals basierend auf einem Datum in Zelle A1 zurück.
10.03.2022 hast, und die Funktion =VorQuartal(A1) verwendest, erhältst du das Ergebnis 31.12.2021.=DATUM(JAHR(A1);MONAT(A1)-REST(MONAT(A1)-1;3);0) erhältst du ebenfalls 31.12.2021.Diese Methoden sind nützlich, um schnell das Quartalsende zu berechnen, ohne manuell nachzusehen.
1. Wie kann ich das Quartalsende für das aktuelle Datum bestimmen?
Du kannst einfach =VorQuartal() ohne Argument verwenden, um das Quartalsende für das heutige Datum zu erhalten.
2. Funktioniert diese Methode in allen Excel-Versionen?
Ja, die beschriebenen Methoden sind in den meisten modernen Excel-Versionen (Excel 2010 und später) anwendbar. Stelle sicher, dass du die VBA-Funktion korrekt einfügst.