vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2017
 
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:  1.693 
ohne HomepageSystem:  WinXP, Vista, Win7, Win8, Win10 Beispielprojekt auf CD 

Summer-Special bei Tools & Components!
Gute Laune Sommer bei Tools & Components
Top Summer-Special - Sparen Sie teilweise bis zu 120,- EUR
Alle sev-Entwicklerkomponenten und Komplettpakete jetzt bis zu 25% reduziert!
zum Beispiel:
  • Developer CD nur 479,20 EUR statt 599,- EUR
  • sevDTA 3.0 nur 224,30 EUR statt 299,- EUR
  •  
  • vb@rchiv   Vol.6 nur 20,00 EUR statt 24,95 EUR
  • sevCoolbar 3.0 nur 55,20 EUR statt 69,- EUR
  • - Werbung -Und viele weitere Angebote           Aktionspreise nur für kurze Zeit gültig

    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 1.693 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-2017 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