• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Konigsdag berekening in VB

Status
Niet open voor verdere reacties.

caffie

Gebruiker
Lid geworden
2 jan 2008
Berichten
291
Heeft er iemand een berekening van koningsdag in VB

Het gaat om VB in excel

ik wil dus de dag hebben

voor het jaartal gebruik ik een variable ("J")

28-4-j is zondag dan 28-4-j -1 of zo iets
je ziet het ik ben een leek


koningsdag is altijd 28 april behalve als de 28 april op een zondag valt
dan wordt het 27 april

hier zoek ik dus een formule voor

voor het jaartal gebruik ik de variable "j"


Als datum(28-04-"J") is een zondag dan 27 anders 28

zo iets



b.v.d.
 
Laatst bewerkt:
In VB of VBA?
Code:
msgbox datevalue("4-5-2017") - 7 & " is het koningsdag"
 
Je bedoelt, als 27 april dan op zondag zou vallen neem ik aan? ;)
De eerstvolgende keer is dat in 2025 en valt koningsdag dus op de zaterdag er voor.
 
Laatst bewerkt:
klopt
ik heb me vraag aangepast
misschien dat u me verder kan helpen

vast bedankt
 
Code:
MsgBox IIf(DatePart("w", DateValue("27-4-" & Year(Date)), 2) = 7, DateValue("26-4-" & Year(Date)), DateValue("27-4-" & Year(Date))) & " is het koningsdag"

Mag ook.
Code:
MsgBox IIf(DatePart("w", DateValue("27-4-" & Year(Date)), 2) = 7, "26-4-" & Year(Date), "27-4-" & Year(Date)) & " is het koningsdag"
 
Laatst bewerkt:
...of zoiets...

Code:
Function KonDag(Jaar As Integer) As Date

    KonDag = DateValue("27-04-" & Jaar) + (Weekday(DateValue("27-04-" & Jaar), 2) = 7)

End Function
(gebruik maken van een vergelijking om er een dag vanaf te trekken)

Overigens is Koningsdag (in Nederland) altijd op 27 april en niet 28 april (behalve als de 27ste een zondag is, dan een dag eerder). Je kan bovenstaande functie in een sheet gebruiken door =KonDag(2017) in te geven, of met een celverwijzing... =KonDag(A1)
Je krijgt dan een datum als waarde terug.
 
Laatst bewerkt:
@HSV en @Ginger,

Even een tussendoorvraagje waarom het gebruik van de ,2 in combinatie met = 7? Purisme dat de week begint op maandag? Onder de motorkap van de code ziet niemand het en kan ,2 waarschijnlijk weggelaten worden en de vergelijking gelijk gesteld worden aan = 1. Of mis ik iets?
 
@VenA,

Dat kan ook:
De schrijfwijze met een 2 komt voort uit automatisme in andere vergelijkingen.
=weekdag(a1,2)>5 voor de zaterdag of zondag.
En dat kan dus niet met weekdag(a1,1 of leeg) om een korte formule te schrijven (7 of 1).

Ps. Mooie methode van Leo.
 
Laatst bewerkt:
Dit komt van de site van Wim de Groot.

Koningsdag berekenen

Vanaf 2014 wordt koningsdag gevierd op 27 april. Maar als dat op zondag valt, gaat het naar zaterdag 26 april.
U berekent koningsdag in Excel met de formule
=ALS(WEEKDAG(DATUM(C2;4;27))=1;DATUM(C2;4;26);DATUM(C2;4;27))
Hier staat het jaartal in cel C2
De formule houdt in: als de weekdag van 27 april een 1 is (d.w.z.: op zondag valt), neem dan 26 april; geef in de andere gevallen 27 april.
Het kan ook met een kortere formule:
=DATUM(C2;4;27)-ALS(WEEKDAG(DATUM(C2;4;27))=1;1;0)
Deze houdt in: neem de datum 27 april en als de weekdag van 27 april een zondag is, trek er dan 1 van af.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan