OpenOffice-Mappen mit Makro zur Berechnung der Lohnsteuer 2010-2014

1. Makro-Aktivierung mit EventHandler/Listener

Das für 2014 in EXCEL erstellte Makro wurde für OpenOffice umgeschrieben und 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 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 'lohnst2014.ods' (bzw. 'lohnst2012.ods' etc.) anklicken und dann 'Standard' sowie dann das Modul 'lohnsteuer2014' (bzw. 'lohnsteuer2012' etc.) mit 'Bearbeiten' öffnen.

2. Makro-Aktivierung durch Schaltfläche des BMF (PAP) folgen 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 und bei denen die Makroaktivierung durch Funktionsaufrufe erfolgt, sind aufzurufen unter
Bei diesen Programmen, die dem PAP 2014 (bzw. PAP 2013 etc.) folgen, wurde der Event-Handler durch das Betätigen eines Steuerelements realisiert. Dies kann man durch Schaltflächen realisieren. Um diese zu erstellen und die Funktion zuzuweisen auf Ansicht_Symbolleisten_Werkzeuge gehen und dann das Icon Steuerelemente (Dreieck mit Bleistift) 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'.


3. Makro-Aktivierung durch Funktionsaufruf   Eine weitere Möglichkeit ist die, an das Makro Parameter durch Zellfunktionen zu übergeben. Dazu muß in jede Zelle, in der ein Wert errechnet werden soll, der Funktionsaufruf geschrieben werden und zwar mit den zur Berechnung des Zellwertes notwendigen Parameter.

Als Beispiel dafür sei das Programm lohnst2014_lst.ods betrachtet. Die Funtion im Makro beginnt mit
Function lst(re4, lzz, stkl, krv, zkf, kist, kv, pkpv, mitag, pvz, ost, pvs, alter1, jfreib, sonstb, jsonstb, mj, f, index).
Dementsprechend müssen diese Werte bei jedem Funtionsaufruf mit übergeben werden. In der Zelle, die die Lohnsteuer berechnet, ist die Zellfunktion z.B. entsprechend:
=LST(B2;B3;B4;B6;B7;B8;B9;B10;B11;B12;B13;B14;B15;B17;B18;B19;B16;B5;0).
Man kann die Anzahl der Parameter in der Funktion natürlich vermindern, wenn z.B. einige Parameter sich nicht ändern. Wichtig ist die identische Reihenfolge der Parameter bei Funktionsaufruf und der Funktion im Makro.

Die Programme mit Funktionsaufruf sind aufzurufen unter

Mit Funktionsaufrufen lassen sich z.B auch Lohnsteuertabellen realisieren:

 

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 'lohnsteuer2013' (bzw. lohnsteuer2012 etc.) einfügt. Die anzusprechenden Zellen muss man dann entsprechend an die eigenen Mappe anpassen.