• 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.

Datum

Status
Niet open voor verdere reacties.

FlipBabe

Gebruiker
Lid geworden
9 jun 2008
Berichten
15
Zie bijlage.

Wat moet er gebeuren?

Alle datums zijn zogezegd in het jaartal 2006. Ze moeten in feite oplopen van 2005 tot 2010. Boven de datums zie je de jaartallen.

Ik krijg eentje goed en eventueel dan door oplopende jaartallen, de andere van die rij ook.
Maar de rest wil niet mee dan...

BV: =datum(B3;1;1)

Zijn er hier andere oplossingen voor? Ik mag wel vanaf B19 de formules zetten en daarna dan overzetten op de bestaande cellen B4:G17




Alvast bedankt!
 

Bijlagen

  • naamloos.JPG
    naamloos.JPG
    98,9 KB · Weergaven: 107
Zie bijlage.

Wat moet er gebeuren?

Alle datums zijn zogezegd in het jaartal 2006. Ze moeten in feite oplopen van 2005 tot 2010. Boven de datums zie je de jaartallen.

Ik krijg eentje goed en eventueel dan door oplopende jaartallen, de andere van die rij ook.
Maar de rest wil niet mee dan...

BV: =datum(B3;1;1)

Zijn er hier andere oplossingen voor? Ik mag wel vanaf B19 de formules zetten en daarna dan overzetten op de bestaande cellen B4:G17




Alvast bedankt!


Ik begrijp niet precies wat je bedoelt, maar als je een $ voor de 3 zet, wordt de 3 niet verandert als je de formule naar beneden sleept.
Een Excel bestand is handiger aan te passen dan een jpg-bestand;)

Met vriendelijke groet,


Roncancio
 
Ja, maar die formule klopt sowieso niet... Iedere datum zou dan 1januari van 2005 zijn bv...

Terwijl de datums eronder wel van pasen zijn enzo...
 
FlipBabe,

Ik begrijp uit je overzciht dat je onbeperkt een aantal feestdagen in het jaar wilt vaststellen.
Ik heb ooit het zelfde probleem gehad en na veel zoeken op het net kwam ik het volgende tegen.

Code:
Function Paasdag(jaar As Integer) As Date
    
    a = jaar Mod 19
    b = Fix(jaar / 100)
    c = jaar Mod 100
    d = Fix(b / 4)
    e = b Mod 4
    g = Fix((8 * b + 13) / 25)
    theta = Fix((11 * (b - d - g) - 4) / 30)
    phi = Fix((7 * a + theta + 6) / 11)
    psi = (19 * a + (b - d - g) + 15 - phi) Mod 29
    i = Fix(c / 4)
    k = c Mod 4
    lamda = ((32 + 2 * e) + 2 * i - k - psi) Mod 7
    maand = Fix((90 + (psi + lamda)) / 25)
    dag = (19 + (psi + lamda) + maand) Mod 32
    
    Paasdag = DateValue(dag & "-" & maand & "-" & jaar)

End Function

Vraag me niet hoe het werkt maar het klopt wel voor de Gregoriaanse datum bepaling.

Met de teruggeven paasdag kan je dan alle van deze datum afhankelijke datums vaststellen. Op dze manier hoef je nooit meer de tabel te onderhouden.

Ik heb het op volgende manier opgelost.

Code:
Private Function BepaalFeestdagOmschr(datum As Date) As String
    Dim dag As Date
    Dim Omschr(5) As String
    Dim OmschrDate(5) As Date
    
    On Error GoTo BepaalFeestdagOmschr_Error
    
    Pasen = Paasdag(Year(datum))
    Nieuwjaarsdag = DateValue("1-1-" & Year(datum))
    Koninginnedag = DateValue("30-4-" & Year(datum))
    Eerste_Kerstdag = DateValue("25-12-" & Year(datum))
    Tweede_Kerstdag = DateValue("26-12-" & Year(datum))
    Bevrijdingsdag = DateValue("5-5-" & Year(datum))
    Goede_Vrijdag = Pasen - 2
    Eerste_Paasdag = Pasen
    Tweede_Paasdag = Pasen + 1
    Hemelvaart = Pasen + 39
    Eerste_Pinksterdag = Pasen + 49
    Tweede_Pinksterdag = Pasen + 50
    
    w = BepaalDagenMaand(datum)
    dag = datum
    Feestdag = 0
    For x = 1 To w
        If Weekday(dag) > 1 And Weekday(dag) < 7 Then
            Select Case dag
                Case Nieuwjaarsdag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "Nieuwjaarsdag"
                    OmschrDate(Feestdag) = dag
                Case Koninginnedag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "Koninginnedag"
                    OmschrDate(Feestdag) = dag
                Case Eerste_Kerstdag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "1e Kerstdag"
                    OmschrDate(Feestdag) = dag
                Case Tweede_Kerstdag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "2e Kerstdag"
                    OmschrDate(Feestdag) = dag
                Case Bevrijdingsdag
                    If Year(dag) Mod 5 = 0 Then
                        Feestdag = Feestdag + 1
                        Omschr(Feestdag) = "Bevrijdingsdag"
                        OmschrDate(Feestdag) = dag
                    End If
                Case Goede_Vrijdag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "Goede vrijdag"
                    OmschrDate(Feestdag) = dag
                Case Eerste_Paasdag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "1e Paasdag"
                    OmschrDate(Feestdag) = dag
                Case Tweede_Paasdag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "2e Paasdag"
                    OmschrDate(Feestdag) = dag
                Case Hemelvaart
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "Hemelvaartsdag"
                    OmschrDate(Feestdag) = dag
                Case Eerste_Pinksterdag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "1e Pinksterdag"
                    OmschrDate(Feestdag) = dag
                Case Tweede_Pinksterdag
                    Feestdag = Feestdag + 1
                    Omschr(Feestdag) = "2e Pinksterdag"
                    OmschrDate(Feestdag) = dag
                Case Else
            End Select
        End If
        dag = dag + 1
    Next x
    'MsgBox Omschr(1) & feestdag
    If Feestdag > 0 Then
        If Feestdag = 1 Then
            BepaalFeestdagOmschr = "Feestdag: " & Omschr(1) & " op " & OmschrDate(1)
        Else
            BepaalFeestdagOmschr = "Feestdagen: " & Omschr(1) & " op " & OmschrDate(1)
            For x = 2 To Feestdag
                If x < Feestdag Then
                    BepaalFeestdagOmschr = BepaalFeestdagOmschr & ", " & Omschr(x) & " op " & OmschrDate(x)
                Else
                    BepaalFeestdagOmschr = BepaalFeestdagOmschr & " en " & Omschr(x) & " op " & OmschrDate(x)
                End If
            Next x
        End If
    End If
    Exit Function
BepaalFeestdagOmschr_Error:
    MsgBox "Foutje"
End Function

Het resultaat van de Function voor december 2007

Code:
Feestdagen: 1e Kerstdag op 25-12-2007 en 2e Kerstdag op 26-12-2007

Wellicht is dit een makkelijkere manier dan steeds de tabel te onderhouden.
Het enige dat je in de cell op de werkblad moet opnemen is

Code:
=BepaalfeestdagOmschr(celwaarde)
Hierbij is 'celwaarde' datum warvoor je het nodig hebt. In mijn geval was dat de maand en jaar.
Jij kan volgens mij volstaan met het jaar door te geven ("B3 t/m G3").

Succes
Wim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan