|
|
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.
|
|
Das Makro des erstgenannten Programms beginnt mit dem Event-Listener, der bei jeder Änderung der Zellen B2-B19 die Funktion 'Gehaltsrechner 2014' (bzw. 'Gehaltsrechner 2011' etc.) 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 verläßt man Modul-Ebene, aktiviert 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 'lohnst2014.ods' (bzw. 'lohnst2011.ods' etc.) und dann (über 'Standard') das Makro 'lohnsteuer2014' (bzw. 'lohnsteuer2011' etc.) 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. |
|
|
|
|
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.
|
|
|
|
|
|