Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Datum vom letzten Freitag ermitteln
#1
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
Excel Version 2016
Antworten Top
#2
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
Antworten Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an LCohen für diesen Beitrag:
  •
Antworten Top
#4
Code:
Function letzterFreitag(ByRef d As Date) As Date
letzterFreitag = ((d + 1) \ 7) * 7 - 1
End Function
vorstehend: Lupos Variante in VBA
Antworten Top
#5
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
Antworten Top
#6
stimmt. passt.
Antworten Top
#7
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
Excel Version 2016
Antworten Top
#8
1) Innerhalb einer Sub ist eine Function-Deklaration Unfug
2) Die Function erwartet das Datum als Argument
Antworten Top
#9
hm und wie könnte ich das Problem lösen?
Gibt es auch eine Lösung ohne "function"?
Excel Version 2016
Antworten Top
#10
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?
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste