ich bin neu hier und möchte mich kurz vorstellen.
Ich heiße Peter und bin ein sehr alter "Knacker". Jetzt habe ich mir vorgenommen für Libre Office Calc Makros in Basic zu schreiben. Meine Programmierkenntnisse sind uralt und außer PHP und MySQL nur rudiment.
Da ich reiner Autodidakt bin, habe ich mir ein Ziel gesetzt und werde das Schritt für Schrit zu verwirklichen versuchen.
Mein Ziel: Automatische Erstellung eines Jahreskallender incl. Feiertagen auf Grund der in Zelle A1 eingegebenen Jahreszahl.
Anfangen will ich mit der Erstellung der Feiertage des Jahres, was bei den fixen Daten ja nur eine Zuweisung des Datums und der Bezeichnung zu einer Konstanten Variable ist. Die beweglichen Feiertage basieren alle auf das Datum des Ostersonntag des entsprechenden Jahres. Und die Berechnung dieses Datum soll mein erstes Makro werden. (Bitte keinenen Verweis auf die Funktion "Ostersonntag" in Libre Office geben, ich will es ja selbst berechnen).
Berechnen will ich das Datum mit der Gauß´schen Osterformel. Und das ist mein erster Versuch:
Code: Alles auswählen
Option Explicit
Sub Ostersonntag
REM... Variablendeklaration
Dim A%, B%, C%, D%, E%, TAG%, JJJJ%
Dim MONAT$
Dim DATUM
Dim oSheet as Object, oCell as Object
REM Ende der Variablendeklaration
REM Zugriff auf aktuelle Tabelle
oSheet = ThisComponent.CurrentController.getActiveSheet()
REM Zugriff auf bestimmte Zelle
oCell = oSheet.getCellRangeByName("A1")
JJJJ = oCell.getValue("A1")
REM Gauß´sche Osterformel
A = JJJJ Mod 19
B = JJJJ Mod 4
C = JJJJ Mod 7
D = ((A * 19) + 24) Mod 30
E = ((B * 2) + (C * 4) +(D * 6) + 5) Mod 7
TAG = 22 + D + E
If TAG <= 31
Then MONAT = "März"
ElseIf MONAT = "April"
End If
If MONAT = "April"
Then TAG = TAG - 31
End If
REM Datum des Ostersonntag zusammensetzen
DATUM = TAG & "." & MONAT & "." & JJJJ
MsgBox DATUM
End Sub
Jetzt meine Frage: Was mache ich falsch? Liegt der Fehler eventuell schon weiter vorne?
Ich bin für jeden Tipp dankbar.
mfg
Peter