Anzahl der Tage bis zum Jahresende ermitteln – VBA Makro und benutzerdefinierte Funktion

In diesem Beitrag erfahren Sie, wie Sie mithilfe von VBA (Visual Basic for Applications) die Anzahl der Tage vom aktuellen Datum bis zum Jahresende berechnen können. Dabei wird ein Datum in einer Zelle angegeben und der Zeitraum bis zum 31. Dezember korrekt ermittelt, wobei Schaltjahre automatisch berücksichtigt werden.

Das Makro lässt sich flexibel anpassen, sodass das Datum nicht nur aus einer Zelle gelesen, sondern auch beispielsweise über eine InputBox oder andere Methoden eingegeben werden kann. Zudem zeige ich Ihnen, wie Sie die Berechnung in einer benutzerdefinierten Funktion auslagern können, um diese direkt in Excel-Tabellen zu verwenden.

VBA Makro: Tage bis zum Jahresende

Das folgende Makro berechnet die Tage bis zum Jahresende anhand eines Datums, das in Zelle A1 eingetragen ist. Es berücksichtigt automatisch, ob es sich um ein Schaltjahr handelt, indem es den 29. Februar einbezieht, falls vorhanden.

Public Sub anz_tage_bis_jahresende()
 datum = Sheets(1).Range("A1").Value ' Datum aus Zelle A1 auslesen
 jahr = Right(Range("A1"), 4) ' Jahr aus dem Datum extrahieren
 tage = (DateDiff("d", "31.12." & jahr, Range("A1"))) * -1 ' Differenz der Tage bis zum Jahresende berechnen
 
 MsgBox "Es sind noch " & tage & " Tage bis zum 31.12." & jahr ' Ergebnis anzeigen
End Sub

Erläuterung des Codes:

  1. datum: Liest das Datum aus Zelle A1 aus.
  2. jahr: Extrahiert das Jahr aus dem Datum, um sicherzustellen, dass der 31. Dezember des richtigen Jahres verwendet wird.
  3. tage: Berechnet die Differenz zwischen dem aktuellen Datum und dem Jahresende mithilfe der DateDiff-Funktion. Die Multiplikation mit -1 sorgt dafür, dass das Ergebnis positiv ist.
  4. MsgBox: Zeigt eine Meldung mit der Anzahl der verbleibenden Tage bis zum Jahresende an.

Anpassungsmöglichkeiten:

Statt das Datum aus einer festen Zelle (A1) zu lesen, können Sie auch eine InputBox verwenden, um das Datum direkt einzugeben:


Public Sub anz_tage_bis_jahresende_inputbox()
 datum = InputBox("Bitte ein Datum eingeben (TT.MM.JJJJ):")
 jahr = Right(datum, 4)
 tage = (DateDiff("d", "31.12." & jahr, datum)) * -1
 
 MsgBox "Es sind noch " & tage & " Tage bis zum 31.12." & jahr
End Sub


Benutzerdefinierte Funktion: Tage bis Jahresende

Sie können die Berechnung der Tage auch in eine benutzerdefinierte Funktion auslagern, um diese direkt in Excel-Zellen zu verwenden. Hier zeige ich Ihnen, wie das funktioniert:

Function TAGEJAHRESENDE(Zelle As Range) As Integer
 Application.Volatile ' Stellt sicher, dass die Funktion bei Änderungen neu berechnet wird
 datum = Zelle.Value
 jahr = Right(Zelle.Value, 4)
 tage = (DateDiff("d", "31.12." & jahr, Zelle.Value)) * -1
 
 TAGEJAHRESENDE = tage ' Rückgabe des Ergebnisses
End Function


So verwenden Sie die Funktion:

  1. Erfassen Sie das Datum in einer beliebigen Zelle, z. B. A1.
  2. Geben Sie in einer anderen Zelle die folgende Formel ein:
    =TAGEJAHRESENDE(A1)

Die Funktion ermittelt nun die Tage bis zum 31. Dezember des in A1 angegebenen Jahres und zeigt das Ergebnis in der Zelle an.

Erweiterungsmöglichkeiten:

  • Schaltjahre automatisch berücksichtigen: VBA erkennt automatisch Schaltjahre. Sie können dies testen, indem Sie Daten wie den 28. oder 29. Februar in Zelle A1 eingeben.
  • Berechnung für zukünftige Jahre: Sie können das Makro oder die Funktion so erweitern, dass sie auch für mehrere Jahre im Voraus arbeitet. Hierzu könnten Sie das Enddatum auf den 31. Dezember eines zukünftigen Jahres anpassen.

Mit diesen Anpassungen können Sie die Berechnung der Tage bis zum Jahresende in Excel flexibel und benutzerfreundlich gestalten.

     sitepanel e mail Anfrage per E-Mail   |   sitepanel telephone +49(0) 151 164 55 914   |    sitepanel formular  Anfrage per Kontaktformular      |     Excel-Hilfeforum Hilfe-Forum

Wir benutzen Cookies
Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.