Toon posts:

[VBA / Excel] De laatste dag van weeknummer

Pagina: 1
Acties:
  • 305 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Het probleem is dat er een datumwaarde verkregen moet worden uit een weeknummer in formaat DD-MM-YYYY. Het weeknummer kan zeer easy uit de Analysis Toolpak van excel getoverd worden. Maar nu is het de bedoeling dat ik van het weeknummer, dus bijvoorbeeld week 13, de laatste dag van die week 13 moet hebben. In dit geval zou dat dus 3 april (zondag) zijn. Als ik de gevraagde functie dus loslaat op weeknummer 13 (2005) dan moet hij mij de waarde 03-04-2005 teruggeven...

wel heb ik een functie die een weeknr kan maken.... maar ik moet dus de laatste dag van die week hebben....

Function Weeknr(d As Date)
Dim t As Long
t = DateSerial(Year(d + (8 - WeekDay(d)) Mod 7 - 3), 1, 1)
Weeknr = ((d - t - 3 + (WeekDay(t) + 1) Mod 7)) \ 7 + 1
End Function

  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Het voordeel van weken is dat ze zich nogal voorspelbaar gedragen, ze bevatten allemaal namelijk 7 dagen. Het makkelijkste is bepalen op welke dag 1 januari viel, en dan de eerste zondag na 1 januari nemen en dan 7*(weeknr -1) erbij optellen.
edit:

dagen dus, of weeknr-1 weken, dat kan met dateadd ook. :)

[ Voor 14% gewijzigd door bigbeng op 07-04-2005 14:35 ]


Verwijderd

wat bigbeng zegt is wel juist, maar je lijkt oorspronkelijk toch van een datum te vertrekken ipv van een weeknummer. in dat geval kan je de berekening van de weeknummer gewoon overslaan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Function LaatsteDagInWeek(Datum As Date) As String
  LaatsteDagInWeek = _
      Format _
        ( _
          DateSerial _
            ( _
              Year(Datum), _
              Month(Datum), _
              Day(Datum) + 7 - Weekday(Datum, vbMonday)), _
          "dd-MM-yyyy" _
        )
End Function