Hallo liebe Forenmitglieder
Ich versuche gerade eine Excel vba Function zu schreiben, die mir anhand eines Datums in einer Zelle oder des Monatsnamens z.B. Januar, februar usw. die Anzahl Kalendertage berechnet und in einer Zelle im Tabellenblatt ausgibt.
So möchte ich später mit Kalendertagen rechnen.
Dazu habe ich folgenden VBA Code eingegeben:
Function Kalendertage(Monat As Range, Datum As Range) As Double
'Berechnet anhand eines Monatnamens oder Datums die Anzahl Kalendertage!
If Monat = True Then
Select Case Monat
Case "Januar", "März", "Mai", "Juli", "August", "Oktober", "Dezember"
Kalendertage = CDbl(31)
Case "Februar"
Kalendertage = CDbl(28)
Case "April", "Juni", "September", "November"
Kalendertage = CDbl(30)
End Select
End If
If Datum = True Then
Dim m As Integer
m = Month(Datum)
Select Case m
Case Is = 1, 3, 5, 7, 8, 10, 12
Kalendertage = CDbl(31)
Case Is = 2
Kalendertage = CDbl(28)
Case Is = 4, 6, 9, 11
Kalendertage = CDbl(30)
End Select
End If
End Function
Leider bekomme ich als Ergebnis der Berechnung immer in der Zelle von Excel ' #Wert ' angezeigt.
Leider konnte ich nicht herausfinden, wo das Problem liegt. Vielleicht schaut sich das ja mal jemand an und findet eine passende Lösung meines Problems. Das Wäre super.
Gebe ich die Select Case Anweisung direkt in eine Sub Prozedur in einem CommandButton auf dem Tabellenblatt ein funktioniert alles.
Der Code selber befindet sich dabei in meiner Makro-Arbeitsmappe, die ich als Excel vla Datei (Excel-Add-In) Datei immer beim Start von Excel ausführe. Excel Version ist noch Excel 2003