Clever-Excel-Forum

Normale Version: Datum vom letzten Freitag ermitteln
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo!

Ich suche einen VBA Code, welcher mir immer das Datum vom letzten Freitag ermittelt, auch, wenn schon eine neue Woche begonnen hat.

Ich hoffe, dass mir jemand helfen kann.

LG
Thomas
Code:
=A1-REST(A1+1;7)
Lässt sich auch in VBA umsetzen:
Code:
Function letzterFreitag(ByRef d As Date) As Date
letzterFreitag = d - (d + 1) Mod 7
End Function
Datum in A1:

=KÜRZEN((A1+0)/7)*7-1 mit vorhergehendem Freitag bis inkl. Freitag
=KÜRZEN((A1+1)/7)*7-1 mit vorhergehendem Freitag bis inkl. Donnerstag

kürzer:

=VRUNDEN(A1-3;7)-1
=VRUNDEN(A1-2;7)-1

=DM((A1-3)/7;)*7-1
=DM((A1-2)/7;)*7-1
Code:
Function letzterFreitag(ByRef d As Date) As Date
letzterFreitag = ((d + 1) \ 7) * 7 - 1
End Function
vorstehend: Lupos Variante in VBA
Bei mir alles normal. Es wird immer abgerundet (oder gleich gelassen). Prämissen: Ganzzahldatümer, kein VBA. Aber:

MsgBox WorksheetFunction.MRound(Now - 2, 7) - 1
MsgBox ((Now + 1) \ 7) * 7 - 1
stimmt. passt.
Hallo!

Danke sehr für eure Hilfen.

Ich habe nun versucht, folgenden Code einzufügen, aber leider kommt immer folgende Fehlermeldung:

Code:

Code:
Private Sub CommandButton3_Click()

Function letzterFreitag(ByRef d As Date) As Date
letzterFreitag = ((d + 1) \ 7) * 7 - 1
End Function
ActiveCell.Value = letzterFreitag

Unload Me

End Sub


Fehlermeldung:

Fehler beim Kompilieren - End Sub erwartet
1) Innerhalb einer Sub ist eine Function-Deklaration Unfug
2) Die Function erwartet das Datum als Argument
hm und wie könnte ich das Problem lösen?
Gibt es auch eine Lösung ohne "function"?
1) indem Du die Function in ein (normales) Modul auslagerst und
2) bei ihrer Verwendung (im Ereignismodul) das Argument mitgibst

Ich habe oben "Function" umgangen. Liest Du die Beiträge?
Seiten: 1 2