Code erweitern
01.10.2008 22:12:00
hans
ich habe folgenden soweit funktionierenden Funktion zur Vollmond-Berechnung hier gefunden.
Allerdings berechnet er nur das angegebene Datum, Ich möchte aber ein komplettes Jahr überprüfen. Ich habe in Zeile A1 bis A 366 das komplette Jahr stehen. Kann man den Code so umschreiben, das er jedes Datum prüft und dann in die Spalte C neben das entsprechende Datum einträgt ob Vollmond ist ?
Function Mondphase(Datum As Date) As String
Const SynodMonat As Double = 29.530588
Const SynodVollmond As Double = 105.6213922 'IstVollmondTag()
'Const SynodStart As Double = 113.0040392 'IstHalbmondTagAbnehmend()
Const SynodNeumond As Double = 120.3866862 'IstNeumondTag()
'Const SynodStart As Double = 127.7693332 'IstHalbmondTagZunehmend()
Dim OK As Boolean
Dim DatumDbl As Double
Dim DatumLng As Long
Dim DatumVollMond As Date
Dim DatumNeuMond As Date
Dim i As Long
If Year(Datum) > 1900 And Year(Datum) Datum Then
Mondphase = "zunehmend"
Exit For
End If
Next i
'Berechnung ob Neumond oder nächster Neumondtag
For i = 1 To 2470
DatumDbl = SynodNeumond + i * SynodMonat
DatumLng = Int(DatumDbl)
DatumNeuMond = CDate(DatumLng)
If DatumNeuMond = Datum Then
Mondphase = "Neumond"
Exit Function
ElseIf DatumNeuMond > Datum Then
Exit For
End If
Next i
'Berechnung ob Neu- oder Vollmond näher
If DatumNeuMond
Danke und Gruß Hans