Moin Florian,
ohne eine Wertung des von dir zitierten Makro vorzunehmen, halte ich dein "Vorhaben" für schlicht und ergreifend brotlos.
Wie du sicher schon bemerkt hast, enthält die Spalte A, also der "Textteil" auch Formeln mit absoluten Bezug auf die Wertespalte B. Ergo sind die nicht einfach auf zusätzliche "Jahre" in C, D ff. anwendbar.
In der VBA function stehen Zellbereiche, Prozentangaben und Bemessungsgrenzen als Konstante.
Selbstplaudernd kannst du für jedes "zusätzliche" Jahr eine angepasste und umbenannte Kopie dieser function in neuem VBA Modul anlegen (unter Berücksichtigung der Ausgabespalte für die Hinweise). Schön wäre dabei die Überlegung, welche Unterfunktionen als einmalige Public oder div. Private angeordnet werden.
Welche gesetzlich vorgeschriebenen Prozente und Bemessungen für zukünftige Jahre gültig sind, kennt wohl nicht einmal die aktuelle Bundesregierung (aber womöglich wäre für diese, eine so von dir erstellte Excel-Tabelle eine wertvolle Hilfe).
Der geringste Aufwand verbleibt beim Klassenmodul Tabelle1
Private Sub Worksheet_Change(ByVal Target As Range)
Dim tc As Long 'Spalte wo
tc = Target.Column
Select Case tc
Case 2 'für Spalte B 2014
If Intersect(Target, Range(Cells(2, tc), _
Cells(19, tc))) Is Nothing Then Exit Sub
Lohnsteuer2014.Gehaltsrechner_2014
Case 3 'für Spalte C 2015
If Intersect(Target, Range(Cells(2, tc), _
Cells(19, tc))) Is Nothing Then Exit Sub
Lohnsteuer2015.Gehaltsrechner_2015
End Select
Target.Select
End Sub
Rem : ohne eine Wertung des von dir zitierten Makro vorzunehmen, spar ich mir den Rest der Arbeit
|