Registriert seit: 08.02.2017
Version(en): 2016
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
Registriert seit: 24.08.2022
Version(en): 365, 2019
24.04.2023, 10:58
(Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2023, 10:59 von EarlFred.)
Lässt sich auch in VBA umsetzen:
Code:
Function letzterFreitag(ByRef d As Date) As Date
letzterFreitag = d - (d + 1) Mod 7
End Function
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipedia, die Tafeln oder aktion-deutschland-hilft.de
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
24.04.2023, 11:01
(Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2023, 11:08 von LCohen.)
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:1 Nutzer sagt Danke an LCohen für diesen Beitrag 28
• EarlFred
Registriert seit: 24.08.2022
Version(en): 365, 2019
24.04.2023, 11:05
(Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2023, 11:11 von EarlFred.)
Code:
Function letzterFreitag(ByRef d As Date) As Date
letzterFreitag = ((d + 1) \ 7) * 7 - 1
End Function
vorstehend: Lupos Variante in VBA
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipedia, die Tafeln oder aktion-deutschland-hilft.de
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
24.04.2023, 11:10
(Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2023, 11:26 von LCohen.)
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
Registriert seit: 24.08.2022
Version(en): 365, 2019
stimmt. passt.
Hat Dir mein Beitrag geholfen? Dann hilf auch Du - mit einer Spende an Wikipedia, die Tafeln oder aktion-deutschland-hilft.de
Registriert seit: 08.02.2017
Version(en): 2016
24.04.2023, 11:30
(Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2023, 11:31 von dertommy.)
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
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
24.04.2023, 11:45
(Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2023, 11:46 von LCohen.)
1) Innerhalb einer Sub ist eine Function-Deklaration Unfug
2) Die Function erwartet das Datum als Argument
Registriert seit: 08.02.2017
Version(en): 2016
24.04.2023, 11:46
(Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2023, 11:47 von dertommy.)
hm und wie könnte ich das Problem lösen?
Gibt es auch eine Lösung ohne "function"?
Excel Version 2016
Registriert seit: 21.12.2017
Version(en): MS 365 Family (6 User x 5 Geräte für jeden) Insider-Beta
24.04.2023, 11:47
(Dieser Beitrag wurde zuletzt bearbeitet: 24.04.2023, 11:49 von LCohen.)
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?