Der Nutzer whält ein Jahr aus und es werden die entsprechenden Feiertage angezeigt.
Soweit läuft es auch.
Jedoch bei "Abbrechen" oder einem leeren Eingabefeld gibt es einen Fehler.
Bei betätigen der "Abbruch"-Taste Exit sub
Bei leerem Feld msgbox " bitte geben sie eine Jahreszahl ein"
Mein Code:
Option Explicit
Private module
Public Function Feiertage(intYear As Integer) As Variant
Dim varDates(13, 1) As Variant
Dim dEaster As Date
dEaster = Easter(intYear)
MsgBox "Neujahr: " & (DateSerial(intYear, 1, 1)) & vbNewLine & vbNewLine & _
"Hl. Drei Könige: " & (DateSerial(intYear, 1, 6)) & vbNewLine & vbNewLine & _
"Karfreitag: " & dEaster - 3 & vbNewLine & vbNewLine & _
"Ostersonntag: " & dEaster & vbNewLine & vbNewLine & _
"Ostermontag: " & dEaster + 1 & vbNewLine & vbNewLine & _
"Tag der Arbeit: " & DateSerial(intYear, 5, 1) & vbNewLine & vbNewLine & _
"Christi Himmelfahrt: " & dEaster + 39 & vbNewLine & vbNewLine & _
"Pfingstsamstag: " & dEaster + 48 & vbNewLine & vbNewLine & _
"Pfingstsonntag: " & dEaster + 49 & vbNewLine & vbNewLine & _
"Pfingstmontag: " & dEaster + 50 & vbNewLine & vbNewLine & _
"Tag der deutschen Einheit: " & DateSerial(intYear, 10, 3) & vbNewLine & vbNewLine & _
"Heiligabend: " & DateSerial(intYear, 12, 24) & vbNewLine & vbNewLine & _
"1. Weihnachtstag: " & DateSerial(intYear, 12, 25) & vbNewLine & vbNewLine & _
"2. Weihnachtstag: " & DateSerial(intYear, 12, 26) & vbNewLine & vbNewLine & _
"Silvester: " & DateSerial(intYear, 12, 31)
Feiertage = varDates
End Function
Private Function Easter(Year As Integer) As Date
Dim D As Integer
D = (((255 - 11 * (Year Mod 19)) - 21) Mod 30) + 21
Easter = DateSerial(Year, 3, 1) + D + (D > 48) + 6 - _
((Year + Year \ 4 + D + (D > 48) + 1) Mod 7)
End Function
Sub spring_zu_Feiertageneu()
Dim dummy As Variant
Dim Jahreszahl As Integer
Jahreszahl = InputBox("Für welches Jahr soll die Feiertagsübersicht erstellt werden?", , 2017)
If Jahreszahl
was läuft hier falsch?Wenn ich "Jahreszahl" anders Deklariere als "as long" geht es nicht