vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Variablen/Strings · Algorithmen/Mathematik   |   VB-Versionen: VB6, VBA22.04.16
EKSt-Berechnung (bis 2015)

Dieses Makro berechnet die Einkommensteuer anhand des zu versteuernden Einkommens (zvE), der Lohnersatzleistungen (LEL), des Jahres und der Tabelle (Grundtabelle = 1, Splittingtabelle = 2).

Autor:   Tobias KönigBewertung:     [ Jetzt bewerten ]Views:  6.100 
ohne HomepageSystem:  WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Dieses Makro berechnet die Einkommensteuer anhand des "zu versteuernden Einkommens" (zvE), der Lohnersatzleistungen (LEL), des Jahres und der Tabelle (Grundtabelle = 1, Splittingtabelle = 2).

Für weitere Jahre muss folgendes geändert werden:

  • MaxJahr muss angepasst werden
  • In den Arrays (G1 - G4, F1 - F9) müssen am ENDE die neuen Faktoren eingegeben werden. Anhand des Beispiels in der oberen Hälfte kann man erkennen, welcher G- und F-Wert für welchen tatsächlichen Wert steht.

Das Programm funktioniert, solange die komplette Berechnungsformel NICHT per Gesetz verändert wird

Function EST_BERECHNUNG(zvE As Double, LEL As Integer, Jahr As Integer, Ta As Byte) 
  '(c) Tobias König, Dresden
 
  ' Berechnet die ESt ab 2005 (bis MaxJahr)
  ' Die in den Arrays gespeicherten Werte sind ebenfalls von 2005 aufsteigend gespeichert
  ' neue Jahre müssen entsprechend eingespeichert werden
 
  Dim A As Integer, B As Integer, C As Long, D As Long
  Dim E As Double, F As Integer, G As Double, H As Integer, I As Integer
  Dim J As Double, K As Double, L As Double, M As Double
  Dim y As Double, Z As Double
 
  Dim MaxJahr As Integer
  Dim Gesamteinkommen As Long
  Dim ESt As Double
  Dim StSatz As Double
 
  MaxJahr = 2015 ' max. Berechnung bis zum Jahr ...
 
  ' Fehlerprüfung 
  If Ta < 1 Or Ta > 2 Then GoTo FehlerTabelle
  If Jahr < 2005 Or Jahr > MaxJahr Then GoTo FehlerJahr
  If zvE < 0 Or LEL < 0 Then GoTo FehlerEingabewert
 
  ' Bsp: Steuerformel 2010
  ' 1. bis 8 004 Euro (Grundfreibetrag): 0 EUR
  ' 2. von 8 005 Euro bis 13 469 Euro: (912,17 • y + 1 400) • y;
  ' 3. von 13 470 Euro bis 52 881 Euro: (228,74 • z + 2 397) • z + 1 038;
  ' 4. von 52 882 Euro bis 250 730 Euro: 0,42 • x - 8 172;
  ' 5. von 250 731 Euro an: 0,45 • x - 15 694.
 
  ' Steuerformel mit Faktoren F1 - F9; G1 - G4
  ' 1. bis G1 Euro (Grundfreibetrag): 0 EUR
  ' 2. von G1 + 1 Euro bis G2 Euro: (F1 • y + F4) • y;
  ' 3. von G2 + 1 Euro bis G3 Euro: (F2 • z + F3) • z + F5;
  ' 4. von G3 + 1 Euro bis G4 Euro: F8 • x - F6;
  ' 5. von G4 + 1 Euro an: F9 • x - F7.
 
 
  ' die 4 Grenzwerte zwischen den ESt-Stufen
  Dim G1 As Variant, G2 As Variant, G3 As Variant, G4 As Variant
  G1 = Array(7664, 7664, 7664, 7664, 7834, 8004, 8004, 8004, 8130, 8354, 8354) ' Grundfreibetrag
  G2 = Array(12739, 12739, 12739, 12739, 13139, 13469, 13469, 13469, 13469, 13469, 13469)
  G3 = Array(52151, 52151, 52151, 52151, 52551, 52881, 52881, 52881, 52881, 52881, 52881)
  G4 = Array(250000, 250000, 250000, 250000, 250400, 250730, 250730, 250730, 250730, 250730, 250730)
 
  ' Faktoren, welche bei der Berechnung benötigt werden
  ' weitere Jahre müssen entsprechend der "Steuerformel mit Faktoren" ergänzt werden
  Dim F1 As Variant, F2 As Variant, F3 As Variant, F4 As Variant, F5 As Variant
  Dim F6 As Variant, F7 As Variant, F8 As Variant, F9 As Variant
  F1 = Array(883.74, 883.74, 883.74, 883.74, 939.68, 912.17, 912.17, 912.17, 933.7, 974.58, 974.58)
  F2 = Array(228.74, 228.74, 228.74, 228.74, 228.74, 228.74, 228.74, 228.74, 228.74, 228.74, 228.74)
  F3 = Array(2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397, 2397)
  F4 = Array(1500, 1500, 1500, 1500, 1400, 1400, 1400, 1400, 1400, 1400, 1400)
  F5 = Array(989, 989, 989, 989, 1007, 1038, 1038, 1038, 1014, 971, 971)
  F6 = Array(7914, 7914, 7914, 7914, 8064, 8172, 8172, 8172, 8196, 8239, 8239)
  F7 = Array(7914, 7914, 15414, 15414, 15576, 15694, 15694, 15694, 15718, 15761, 15761)
  F8 = Array(0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42, 0.42)
  F9 = Array(0.42, 0.42, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45, 0.45)
 
  ' Einlesen der Werte
  GesamtEinkommen = Int((zvE + LEL) / Ta)
 
  ' Festlegen der Grenzwerte und Faktoren für die eigentliche Berechnung
  ' Grenzwerte der einzelnen Stufen
  A = G1(Jahr - 2005): B = G2(Jahr - 2005): C = G3(Jahr - 2005): D = G4(Jahr - 2005)
 
  ' Faktoren etc. in der Berechnung
  E = F1(Jahr - 2005): F = F4(Jahr - 2005): G = F2(Jahr - 2005): H = F3(Jahr - 2005)
  I = F5(Jahr - 2005): J = F6(Jahr - 2005): K = F7(Jahr - 2005): L = F8(Jahr - 2005)
  M = F9(Jahr - 2005)
 
  ' eigentliche Berechnung
  If GesamtEinkommen <= A Then 'Stufe 1
    Est = 0
  ElseIf GesamtEinkommen > A And GesamtEinkommen <= B Then  ' Stufe 2
    y = (GesamtEinkommen - A) / 10000
    Est = (E * y + F) * y
  ElseIf GesamtEinkommen > B And GesamtEinkommen <= C Then  ' Stufe 3
    Z = (GesamtEinkommen - B) / 10000
    Est = Int((G * Z + H) * Z + I)
  ElseIf GesamtEinkommen > C And GesamtEinkommen <= D Then  ' Stufe 4
    Est = L * GesamtEinkommen - J
  Else ' Stufe 5
    Est = M * GesamtEinkommen - K
  End If
 
  StSatz = Est * 100 / GesamtEinkommen ' Steuersatz
  EST_BERECHNUNG = Int(zvE * StSatz / 100) ' Ergebnis
  Exit Function
 
  ' Fehlerbehandlung
FehlerTabelle:
  EST_BERECHNUNG = "#Steuertabelle falsch"
  Exit Function
 
FehlerJahr:
  EST_BERECHNUNG = "#Jahr falsch"
  Exit Function
 
FehlerEingabewert:
  EST_BERECHNUNG = "#zvE oder LEL falsch"
End Function

Aufrufbeispiel:

' Einkommen: 30.000
' Lohnersatzleistungen: 0
' Jahr: 2015
' Tabelle: 1 = Grundtabelle
Dim EKSt As Variant
EKSt = EST_BERECHNUNG(30000, 0, 2015, 1)
If VarType(EKSt) = vbString Then
  ' Fehler
  MsgBox "Fehler: " & EKSt
Else
  ' EKSt
  MsgBox "EKSt: " & FormatNumber(EKSt, 0, , , vbTrue) & " EUR"
End If

Dieser Tipp wurde bereits 6.100 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel