![]() |
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
|
|
|
LinkBack | Discussietools | Weergave |
|
#1
|
||||
|
||||
|
In mijn vorige ISOweeknumNaarDatum zat een klein foutje, hierbij de verbeterde versie
De fout had te maken met: als de eerste week van het jaar week 53 was zou niet de goede datum worden terugegeven. Hierbij de Formules in VBA om:
NEN 2772 loopt wat betreft de nummering van de weken gelijk met ISO 8601. Om de datum om te zetten naar weeknummer gebruiken we de datepart functie van VBA (=DatePart("ww", Datum, vbMonday, vbFirstFourDays)) Werkwijze om het weeknummer naar datum om te zetten We pakken eerst 1 januari van het opgegeven jaar Dan kijken we op 1 januari op een donderdag of eerder in de week valt. Zo ja, valt 1 januari in week 1, anders is de volgende week de eerste week. bereken het verschil in weken , vermenigvuldig met 7 = aantal dagen vanaf de eerste maandag in het jaar tel daar dan nieuwjaarsdag (serial datum) bij op en je hebt de datum. Om de code in je werkblad te gebruiken: Datum naar weeknummer -> =ISOweeknum(celverwijzing naar datum of datum) Weeknummer naar datum -> =ISOweeknumNaarDatum(celverwijzing naar Jaar of Jaar;celverwijzing naar weeknummer of weeknummer) hieronder de VBA code: Code:
Public Function ISOweeknumNaarDatum(ByVal Jaar As Integer, ByVal Week As Integer) As Date
Dim Maandag As Date, IsoWeek As Integer
Maandag = EersteMaandagJaar(Jaar)
IsoWeek = ISOweeknum(Maandag)
If IsoWeek = 53 Then IsoWeek = 1
ISOweeknumNaarDatum = ((Week - IsoWeek) * 7) + Maandag
End Function
Public Function ISOweeknum(ByVal Datum As Date) As Integer
ISOweeknum = DatePart("ww", Datum, vbMonday, vbFirstFourDays)
End Function
Private Function EersteMaandagJaar(ByVal Jaar As Integer) As Date
Const DONDERDAG = 4
Dim Nieuwjaar As Date, Weekdag As Integer
Nieuwjaar = DateSerial(Jaar, 1, 1)
Weekdag = DatePart("w", Nieuwjaar, vbMonday, vbFirstFourDays) - 1
EersteMaandagJaar = Nieuwjaar - Weekdag
If Weekdag > DONDERDAG Then EersteMaandagJaar = EersteMaandagJaar + 7
End Function
__________________
Suc6 druk op F1 en lees ! En zie wat de moeder van de meeste oplossingen is. en Worksheet.nl is de dochter Moderator www.worksheet.nl / mr.magoo@worksheet.nl Lees informatieve columns over buitenlandse reizen en wandelingen in Nederland Verrassende columns over het leven van alledag op een camping. Optimistische columns over pubers, ouders en ouderen. op www.jolandacatharina.nl |
| Sponsored Links |
|
#2
|
|||
|
|||
|
Mr. Magoo,
Bedankt, voor de uitleg, deze kan ik dan inderdaad goed gebruiken in mijn werkblad mvg, william |
|
#3
|
||||
|
||||
|
Of kijk hier eens !
__________________
Groet, GiMe Moderator Mr.GiMe@worksheet.nl Alles is relatief en zelfs dat.. Een bijlage (Excelvoorbeeldje met aanduiding van het gewenste resultaat) erbij betekent: -dat de helper(s) niet de, meestal reeds bestaande, worksheet van de vrager moet(en) overtypen -geen (ver)gissen mogelijk is bij de interpretatie van het proza -men reeds kan anticiperen op toekomstige problemen -veel vlugger tot een oplossing komt kortom : Het wiel niet opnieuw dient uitgevonden te worden ! |
|
#4
|
||||
|
||||
|
Mr. Magoo,
Ik wil je Function ISOweeknumNaarDatum gebruiken maar merk dat voor dit jaar de datum een week verschoven is. Op mijn werk wordt gebruik gemaakt van de notatie yyww.d (oftewel jaar week.weekdag) bv vandaag dinsdag 19-10-2010 wordt genoteerd als 1042.2 Nu wil uit deze notatie de datum halen echter hij zit met de functie er een week langs. Kan dit kloppen? Mike |
![]() |
| Discussietools | |
| Weergave | |
|
|
|
|||||||
| Registreer | FAQ | Gebruiksaanwijzing forum | Online excel cursus | Zoeken | Berichten van vandaag | Markeer forums als gelezen |
Soortgelijke discussies
|
||||
| Discussie | Auteur | Forum | Reacties | Laatste bericht |
| Datum (getal) omzetten naar datum (datum) | Bergeijk | Afgehandelde vragen | 3 | 25 november 2011 16:28 |
| Product opdelen in percentages nieuw product en vice versa? | Ellen967 | Afgehandelde vragen | 2 | 11 februari 2011 08:42 |
| Kolomletter naar Kolomnummer en Visa Versa | Mr. Magoo | Tips en Trics | 0 | 6 oktober 2008 20:53 |
| van rij naar kolom en vice versa | bigfun | Afgehandelde vragen | 2 | 23 april 2008 10:53 |
| Datum naar weeknumer en Visa Versa in VBA | Mr. Magoo | Afgehandelde vragen | 6 | 18 mei 2007 17:23 |