Home > Datums van feestdagen
Datums van feestdagen in een willekeurig jaar
Geef in een invoervenster een jaartal op (tussen 100 en 10.000) en een berichtvenster laat de feestdagen van dat jaar zien.
De volgende macrocode werkt zowel in Word als in Excel.
Open de Visual Basic Editor (sneltoets: Alt+F11), klik op Invoegen, Module; er opent een leeg codeblad. Kopieer onderstaande code en plak die in de module.
Als u deze macro uitvoert, verschijnt er een venster. Voer daarin een jaartal in. Klik op OK en u ziet een berichtvenster met de datums waarop de feestdagen in dat jaar vallen.
Sub Feestdagen()
Dim Pasen As Date, Ramadan As Date
Jaar = InputBox("Vul een jaartal in." _
& vbCrLf & vbCrLf & "Het huidige jaartal staat er al.", "Feestdagen", Year(Date))
If Jaar = "" Then End
a = DateSerial(Jaar, 4, 1) / 7
If Jaar Mod 19 = 0 Then b = 19
c = (Jaar Mod 19 + b) * 19 - 7
d = (c Mod 30) / 7
Pasen = Round(a + d, 0) * 7 - 6
datum = Int((Jaar - 1900) * 354.367 + 1421.44)
If Jaar < 1997 Then sprong = -366
If Jaar > 2030 Then sprong = 365
Ramadan = datum + sprong
MsgBox "Nieuwjaar" & vbTab & vbTab & Format(DateSerial(Jaar, 1, 1), "dddd d mmmm") & vbCrLf _
& "Carnaval" & vbTab & vbTab & Format(Pasen - 49, "dddd d mmmm") & vbCrLf _
& vbTab & vbTab & "tot " & Format(Pasen - 47, "dddd d mmmm") & vbCrLf _
& "Goede Vrijdag" & vbTab & Format(Pasen - 2, "dddd d mmmm") & vbCrLf _
& "Pasen" & vbTab & vbTab & Format(Pasen, "dddd d mmmm") & vbCrLf _
& vbTab & vbTab & Format(Pasen + 1, "dddd d mmmm") & vbCrLf _
& "Hemelvaart" & vbTab & Format(Pasen + 39, "dddd d mmmm") & vbCrLf _
& "Pinksteren" & vbTab & vbTab & Format(Pasen + 49, "dddd d mmmm") & vbCrLf _
& vbTab & vbTab & Format(Pasen + 50, "dddd d mmmm") & vbCrLf _
& "Kerst" & vbTab & vbTab & Format(DateSerial(Jaar, 12, 25), "dddd d mmmm") & vbCrLf _
& vbTab & vbTab & Format(DateSerial(Jaar, 12, 26), "dddd d mmmm") & vbCrLf _
& "Oudjaar" & vbTab & vbTab & Format(DateSerial(Jaar, 12, 31), "dddd d mmmm") & vbCrLf & vbCrLf _
& "Ramadan" & vbTab & vbTab & Format(Ramadan, "dddd d mmmm") & vbCrLf _
& "Suikerfeest" & vbTab & Format(Ramadan + 30, "dddd d mmmm") & vbCrLf _
& "Offerfeest" & vbTab & vbTab & Format(Ramadan + 98, "dddd d mmmm"), vbInformation, "Feestdagen in " & Jaar
End Sub
De volgende macrocode werkt zowel in Word als in Excel.
Open de Visual Basic Editor (sneltoets: Alt+F11), klik op Invoegen, Module; er opent een leeg codeblad. Kopieer onderstaande code en plak die in de module.
Als u deze macro uitvoert, verschijnt er een venster. Voer daarin een jaartal in. Klik op OK en u ziet een berichtvenster met de datums waarop de feestdagen in dat jaar vallen.
Sub Feestdagen()
Dim Pasen As Date, Ramadan As Date
Jaar = InputBox("Vul een jaartal in." _
& vbCrLf & vbCrLf & "Het huidige jaartal staat er al.", "Feestdagen", Year(Date))
If Jaar = "" Then End
a = DateSerial(Jaar, 4, 1) / 7
If Jaar Mod 19 = 0 Then b = 19
c = (Jaar Mod 19 + b) * 19 - 7
d = (c Mod 30) / 7
Pasen = Round(a + d, 0) * 7 - 6
datum = Int((Jaar - 1900) * 354.367 + 1421.44)
If Jaar < 1997 Then sprong = -366
If Jaar > 2030 Then sprong = 365
Ramadan = datum + sprong
MsgBox "Nieuwjaar" & vbTab & vbTab & Format(DateSerial(Jaar, 1, 1), "dddd d mmmm") & vbCrLf _
& "Carnaval" & vbTab & vbTab & Format(Pasen - 49, "dddd d mmmm") & vbCrLf _
& vbTab & vbTab & "tot " & Format(Pasen - 47, "dddd d mmmm") & vbCrLf _
& "Goede Vrijdag" & vbTab & Format(Pasen - 2, "dddd d mmmm") & vbCrLf _
& "Pasen" & vbTab & vbTab & Format(Pasen, "dddd d mmmm") & vbCrLf _
& vbTab & vbTab & Format(Pasen + 1, "dddd d mmmm") & vbCrLf _
& "Hemelvaart" & vbTab & Format(Pasen + 39, "dddd d mmmm") & vbCrLf _
& "Pinksteren" & vbTab & vbTab & Format(Pasen + 49, "dddd d mmmm") & vbCrLf _
& vbTab & vbTab & Format(Pasen + 50, "dddd d mmmm") & vbCrLf _
& "Kerst" & vbTab & vbTab & Format(DateSerial(Jaar, 12, 25), "dddd d mmmm") & vbCrLf _
& vbTab & vbTab & Format(DateSerial(Jaar, 12, 26), "dddd d mmmm") & vbCrLf _
& "Oudjaar" & vbTab & vbTab & Format(DateSerial(Jaar, 12, 31), "dddd d mmmm") & vbCrLf & vbCrLf _
& "Ramadan" & vbTab & vbTab & Format(Ramadan, "dddd d mmmm") & vbCrLf _
& "Suikerfeest" & vbTab & Format(Ramadan + 30, "dddd d mmmm") & vbCrLf _
& "Offerfeest" & vbTab & vbTab & Format(Ramadan + 98, "dddd d mmmm"), vbInformation, "Feestdagen in " & Jaar
End Sub