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 van Sub tot en met End Sub, en plak die in de module.
Als je deze macro uitvoert (sneltoets: F5), verschijnt er een venster. Voer daarin een jaartal in, klik op OK en een berichtvenster laat zien op welke datums 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 van Sub tot en met End Sub, en plak die in de module.
Als je deze macro uitvoert (sneltoets: F5), verschijnt er een venster. Voer daarin een jaartal in, klik op OK en een berichtvenster laat zien op welke datums 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