Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA: letzter Freitag im Monat

VBA: letzter Freitag im Monat
21.10.2019 22:36:51
Christian
Grüßt euch,
mich plagt wiedermal ein Problem welches ich nicht gelöst bekomme, mir fehlt es entweder an kreativität oder wissen über vba.
Ich möchte für eine Zeitreihe immer den letzten Freitag im Monat angezeigt bekommen.
Beispiel.
Meine Formel ermittelt 80 Monatswerte.
Beginn ist der Freitag 28.06.2019.
Nun möchte ich für jeden der folgenden 80 Monatswerte in einer neuen Zelle den letzten Freitag im folgemonat angezeigt bekommen.
T0: Freitag 28.06.2019
T1: Freitag 26.07.2019
T2: Freitag 30.08.2019
...... usw. bis
T80:Freitag ......
Da sich die Anzahl der Monatswerte, sowie der Beginn T0 in meinem Modell ständig ändern, möchte ich dies mit VBA verwirklichen.
Ich bräuchte daher eine Idee zum Aufbau des Codes.
Vielen Dank
Christian
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: VBA: letzter Freitag im Monat
22.10.2019 00:38:49
Daniel
HI
wenn in T0 das Datum steht, bekommst du die Werte ausgehend von T0 mit dieser Formel:
=Datum(Jahr(T0);Monat(T0)+2;1)-Wochentag(Datum(Jahr(T0);Monat(T0)+2;1);16)
diese Formel kommt in T1 (also eine Zelle unterhalb von T0) und dann kopierst du die Formel soweit nach unten wie benötigt.
Gruß Daniel
Anzeige
AW: VBA: letzter Freitag im Monat
22.10.2019 11:18:11
Sigi
Hallo Christian,
mit VBA-Funktion wie folgt:
Function Last_FR(Jahr As Long, Monat As Long) As Date
Dim t As Long, s As Long
s = (Monat = 2) And (Day(DateSerial(Jahr, 2, 29)) = 29): s = s * -1
t = Choose(Monat, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31): t = t + s
Last_FR = DateSerial(Jahr, Monat, t + 1) - Weekday(DateSerial(Jahr, Monat, t - 5))
End Function
Gruß
Sigi
Anzeige
AW: VBA: letzter Freitag im Monat
22.10.2019 14:21:58
Christian
Hi Sigi, Daniel und Bernd
Danke für eure Vorschläge.
@Daniel
ich möchte so wenig wie möglich in den Tabellenblättern arbeiten. Denn dort müsste ich ständig händisch anpassen, was bei meinen Berechnungen und simulationen welche sich wähernd meiner auswertungen viele hundert mal ändern zu aufwendig wird.
Dein Vorschlag ist ja quasi der von Sigi nur nicht in VBA.
@Bernd
Danke für den Link, ich hatte mir auch überlegt immer den letzten Arbeitstag (nicht Freitag) des Monats anzeigen zu lassen, da kommt mir dein Ansatz sehr gelegen.
Perfekt. Danke dafür!
@Sigi
Dein Vorschlag habe ich so bei mir umgesetzt. Funktioniert bisher noch wie gewollt.
Vielen Dank euch dreien für die Hilfe.
Grüße Chris
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Berechnung des letzten Freitags im Monat mit VBA


Schritt-für-Schritt-Anleitung

Um den letzten Freitag im Monat mit VBA zu berechnen, kannst Du die folgende Funktion verwenden. Diese Funktion ermittelt den letzten Freitag eines angegebenen Monats und Jahres:

Function Last_FR(Jahr As Long, Monat As Long) As Date
    Dim t As Long, s As Long
    s = (Monat = 2) And (Day(DateSerial(Jahr, 2, 29)) = 29): s = s * -1
    t = Choose(Monat, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31): t = t + s
    Last_FR = DateSerial(Jahr, Monat, t + 1) - Weekday(DateSerial(Jahr, Monat, t - 5))
End Function
  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen und wähle Modul.
  3. Füge den obigen Code in das Modul ein.
  4. Schließe den VBA-Editor.
  5. Du kannst nun die Funktion Last_FR(Jahr, Monat) in Deinen Excel-Zellen verwenden, um den letzten Freitag des Monats zu ermitteln.

Häufige Fehler und Lösungen

  • Fehler: #NAME?

    • Ursache: Die Funktion wurde nicht korrekt im VBA-Editor eingefügt. Stelle sicher, dass der Code im richtigen Modul liegt.
  • Fehler: Ungültiges Datum

    • Ursache: Überprüfe, ob das Jahr und der Monat gültig sind. Achte darauf, dass der Monat zwischen 1 und 12 liegt.

Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch eine Excel-Formel verwenden, um den letzten Freitag im Monat zu berechnen. Hier ist eine nützliche Formel:

=DATUM(JAHR(T0);MONAT(T0)+2;1)-WOCHENTAG(DATUM(JAHR(T0);MONAT(T0)+2;1);16)

Setze diese Formel in die Zelle T1, wenn in T0 das Startdatum steht. Kopiere die Formel anschließend nach unten, um die letzten Freitage für die folgenden Monate anzuzeigen.


Praktische Beispiele

Angenommen, dein Startdatum (T0) ist der 28.06.2019:

  • T0: Freitag, 28.06.2019
  • T1: =DATUM(JAHR(T0);MONAT(T0)+2;1)-WOCHENTAG(DATUM(JAHR(T0);MONAT(T0)+2;1);16) ergibt Freitag, 26.07.2019
  • T2: ergibt Freitag, 30.08.2019

Verwende die obigen Formeln und Funktionen, um die letzten Freitage für die gewünschte Zeitreihe zu berechnen.


Tipps für Profis

  • Nutze VBA, wenn Du häufige Berechnungen automatisieren möchtest, um Zeit zu sparen.
  • Denke daran, die Funktion Last_FR in einem Modul zu speichern, damit Du sie in verschiedenen Arbeitsblättern verwenden kannst.
  • Wenn Du den letzten Freitag im Jahr berechnen möchtest, kannst Du die Funktion einfach mit dem entsprechenden Jahr und dem Monat Dezember aufrufen.

FAQ: Häufige Fragen

1. Wie finde ich den ersten Freitag im Monat?
Du kannst eine ähnliche Methode verwenden, indem Du die Wochentage entsprechend anpasst und den ersten Freitag des Monats mit einer Formel berechnest.

2. Kann ich diese Funktion auch für andere Wochentage verwenden?
Ja, Du kannst die Funktion anpassen, indem Du den Wochentag in der Berechnung änderst, um den gewünschten Wochentag zu ermitteln.

3. Wie kann ich den letzten Tag im Monat berechnen?
Verwende die Excel-Funktion =EOMONTH(T0;0), um den letzten Tag des Monats zu erhalten, basierend auf dem Datum in T0.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige