OpenOffice-Mappe mit Makro zur Berechnung der Lohnsteuer 2010

Das für EXCEL erstellte Makro wurde für OpenOffice umgeschrieben und ist

Ein weiters Programm, das in der Programmierung dem Programmablaufplan zur Lohnsteuerberechnung 2010 des BMF (PAP 2010) folgt mit den gleichen Bezeichnungen für die einzelnen Paramter und mit Berücksichtigung von Einnahmen aus mehrjähriger Tätigkeit und von Versorgungsbezügen ist

Wenn die Makroausführung gesperrt ist auf Extras_Optionen_OpenOffice.org_Sicherheit gehen und dort das Fenster 'Makrosicherheit' öffnen. Einstellung ' mittel' wählen.

Auch diese beiden Programme sind FreeWare und können nach eigenen Wünschen verändert werden. Die Arbeitsmappe wurde ohne Änderungen von der EXCE-Arbeitsmappe übernommen und dient vor allem dazu, Ein- und Ausgabeparameter ohne viel Erklärung zuordnen zu können. Auch diese Makro sind vor allem dazu gedacht, sie in andere OpenOffice-Mappen einzufügen für eigene Lohnbuchhaltungsprogramme. Aus den Makro selbst läßt sich direkt ersehen, welche Ein- und Ausgabezellen angesprochen werden bzw. welche zum Anpassen an eine eigene Mappe entstprechend zu ändern sind. Zum Aufrufen der Makro nach dem Laden der OpenOffice-Arbeitsmappe Alt + F11 drücken und im Fenster OpenOffice Basic Makros Datei 'lohnst2010.ods' anklicken und dann 'Standard' sowie dann das Modul 'lohnsteuer2010' mit 'Bearbeiten' öffnen.

Das Makro des erstgenannten Programms beginnt mit dem Event-Listener, der bei jeder Änderung der Zellen B2-B19 die Funktion 'Gehaltsrechner 2010' aufruft. Dieser wird beim Dokumenten-Start aktiviert und beim Dokumenten-Schliessen wieder deaktiviert. Wenn man diesen Listener in seine eigene Arbeitsmappe übernimmt, muß man den Start und das Ende dieser Funktion neu einrichten. Dazu geht man auf Extras_Anpassen und wählt im Anpassen-Fenster dann 'Ereignisse', aktiviert 'Dokument öffnen', und wählt dann 'Zuweisen Makro'. In dem dann erscheinenden neuen Fenster wählt man aus der Bibliothek dann die Datei lohnst2010.ods und dann (über 'Standard') das Makro 'lohnsteuer2010' aus. Aus den dann in der rechten Spalte aufgeführten Funktionen wählt man entsprechend die Funktion 'AddListener' aus. In gleicher Weise verfährt man um die Funktion 'RemoveListener' beim Schliessen des Dokumentes zu starten.

 

Beim (zweiten) Programm, das dem PAP 2010 folgt, wurde der Event-Handler durch das Betätigen eines Steuerelements realisiert. Dazu auf Ansicht_Symbolleisten_Werkzeuge gehen und dann das Icon Steuerelemente anklicken. Damit läßt sich auf Entwurfsmodus stellen (bzw. dann wieder auf Aktivmodus). Im Entwurfmodus sind die Icons aktiviert und lassen sich auswählen. In diesem Modus dann das Icon Schaltfläche anklicken und auf der Arbeitsmappe eine entsprechende erstellen (Mausklick an gewünschter Stelle, dann Cursor nach rechts ziehen). Die erzeugte Schaltfläche dann mit der rechten Maustaste anklicken. Im 'Eigenschaft Schaltfläche'-Fenster zunächst das Blatt 'Allgemein' und daraus Titel und Schrift für die Schaltfläche auswählen. Im Blatt 'Ereignis' erfolgt dann die Zuordnung des Events 'Maustaste loslassen' zum Makro 'Gehaltsrechner'.

 

Zur Programmierung in OpenOffice folgende Hinweise:

Zur Übernahme der Zellwerte aus der Arbeitsmappe und zum Schreiben von Werten in die Arbeitsmappe muss die Zelle (im Unterschied zu EXCEL) jeweils als Objekt definiert werden. Die Programmierung der Berechnung der Lohnsteuer und der Sozialabgaben in BASIC ist identisch. Um eine Zelle als Objekt in einer Arbeitsmappe zu definieren und den Wert daraus zu übernehmen erfolgt dies folgendermaßen:

' aktuelles Dokument holen
 oCalcDokument = ThisComponent
 ' erstes Tabellenblatt holen
 oTabellenblatt = oCalcDokument.Sheets(0)
 oZelle = oTabellenblatt.getCellRangeByName("B2")
 re4 = oZelle.Value   'Bruttolohn
Die Übergabe eines Wertes in eine Zelle dann entsprechen:
 oZelle = oTabellenblatt.getCellRangeByName("B21")
 oZelle.Value = stresult(0)   'Steuer im Lohnzahlungszeitraum
Bei der Übergabe von Werten an eine Funktion kann man diese mit dem Funktionsaufruf übergeben und den Funktionskopf formulieren:
Sub freibetraege(jre4, alter1, stkl) As Double
und den Funktionsaufruf entsprechend:
ergebnis = freibetraege(jre4, alter1, stkl)
oder aber die Werte Global formulieren, sodass sie für jede Funktion sichtbar sind:
Global result As Double
Global stresult(8) as Double  'Array für Steuerwerte
Global sozresult(4) as Double ' Array für Sozialabgaben
Das Kopieren des Makros in die eigene Arbeitsmappe erfolgt am Einfachsten, indem man ein Modul in der eigenen Mappe anlegt und den kopierten Inhalt des Moduls 'lohnsteuer2010' einfügt. Die anzusprechenden Zellen muss man dann entsprechend an die eigenen Mappe anpassen.

 

Wolfgang Parmentier, 60320 Frankfurt am Main E-Mail: parmentier.ffm@t-online.de