von VBA habe ich bisher leider keine große Ahnung.
Ich würde der nachfolgenden Code nutzen, mit ein paar Änderungen.
In einem Tabellenblatt habe ich in der Spalte A mehrere Einkommen stehen.
In Spalte B sollte nun die Steuer aus der Grundtabelle stehen.
In Spalte C sollte nun die Steuer aus der Splittingtabelle stehen.
Folgender Inhalt steht in A1
50.000
In B1 soll 12.847 und in C1 8.212 stehen.
Wie kann ich die Funktion aufrufen in B1, etwa mit = testest(a1)?
Der VBA sollte so gestaltet sein, dass ich ihn universal einsetzen kann.
MSG-Boxen sollen NICHT erscheinen.
Wer kann mir hier helfen?
Danke vorab
gruß
Gert
Option Explicit
'Einkommensteuertarif gem. § 32a für 2009 Public Function est(ByVal zuVerstEinkommen As Double, splitting As Boolean) Dim x As Double, y As Double, z As Double If splitting Then zuVerstEinkommen = zuVerstEinkommen / 2 Select Case zuVerstEinkommen Case 0 To 7834 est = 0 Case 7835 To 13139 y = Int(zuVerstEinkommen - 7834) / 10000 est = Int((939.68 * y + 1400) * y) Case 13140 To 52151 z = Int(zuVerstEinkommen - 13139) / 10000 est = Int((228.74 * z + 2397) * z + 1007) Case 52152 To 250401 x = Int(zuVerstEinkommen) est = Int(0.42 * x - 8064) Case Is >= 250401 x = Int(zuVerstEinkommen) est = Int(0.45 * x - 15576) End Select If splitting Then est = est * 2 End Function 'Funktionsaufruf
Sub testEST()
Dim stpflEinkommen As Long
stpflEinkommen = InputBox("Eingabe des zu versteuernden Einkommens", "Einkommen", 50000)
MsgBox "Steuerpfl. Einkommen: " & Format(stpflEinkommen, "#,###,##0") & vbLf & vbLf _
& "Tarif nach Grundtabelle " & Format(est(stpflEinkommen, False), "#,###,##0") & vbLf _
& "Tarif nach Splittingtabelle " & Format(est(stpflEinkommen, True), "#,###,##0"), _
vbInformation, "EST-Tarif nach § 32a"
End Sub