Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Lohnsteuerberechnung (UDF, XLM-Datei, Webabfrage)

Forumthread: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfrage)

Lohnsteuerberechnung (UDF, XLM-Datei, Webabfrage)
19.07.2008 15:46:00
Rolf
Hallo,
bisher habe ich für meine Excel-Tabellen die Steuerberechnung in VBA nach dem Programmablaufplan des BMF (https://www.abgabenrechner.de/pruefdaten/pap2008.pdf) programmiert.
Seit einigen Jahren bietet der BMF die auf folgende Seite beschriebene Möglichkeit an:
https://www.abgabenrechner.de/interface/
Die Abfrage kann ich zwar aus Excel heraus als Hyperlink starten und mir wird auch die XML-Seite angezeigt. Ich möchte nun aber nicht die XML-Seite angezeigt bekommen, sondern die Ergebnisse (aufbereitet) in eine Excel-Tabelle einfügen.
Kann und würde mir einer von Euch weiterhelfen? Für jede Idee wäre ich dankbar.
Gruß
Rolf

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfrage)
20.07.2008 09:55:04
ChristianM
Hallo Rolf,
hier ein Ansatz für Excel Versionen ab XL2000. Weitere Aufbereitung der Array-Werte von vRes funktioniert dann nach dem gleichen Prinzip.
Grüße
Christian

Option Explicit
Sub GetXmlData()
Dim sUrl$, sTxt$, vTxt, vRes, i&, k&
Dim oIE As Object
sUrl = "https://www.abgabenrechner.de/interface/2008.jsp?LZZ=1&RE4=2500000&STKL=1"
k = 2
Set oIE = CreateObject("InternetExplorer.Application")
oIE.navigate sUrl
Do: Loop Until oIE.Busy = False
sTxt = oIE.document.documentElement.outerTEXT
Set oIE = Nothing
With Sheets("Tabelle1")
.Cells.Clear
vTxt = Split(sTxt, vbCrLf)
For i = 0 To UBound(vTxt)
If InStr(vTxt(i), "name=") > 0 Then
vRes = Trim(Replace(Replace(vTxt(i), "", ""))
vRes = Split(vRes)
.Range(.Cells(k, 1), .Cells(k, UBound(vRes) + 1)) = vRes
k = k + 1
End If
Next
End With
End Sub


Anzeige
AW: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfrage)
20.07.2008 13:13:27
Rolf
Hallo Christian,
vielen Dank für Deine Anwort. Das hilft mir schon sehr weiter.
Kannst Du die Zeilen
Do: Loop Until oIE.Busy = False
sTxt = oIE.document.documentElement.outerTEXT
noch etwas erläutern?
Was bedeutet "oIE.Busy" und ".outerTEXT"
Was wird in der Schleife ausgeführt (ich bin etwas irretiert)?
Gruß
Rolf

Anzeige
AW: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfrage)
20.07.2008 14:02:00
ChristianM
Hallo,
mit: Do: Loop Until oIE.Busy = False
wird solange gewartet, bis der Browser die Seite angefragt hat. Zur Sicherheit könntest du diese Zeile zweimal unter einander schreiben.
outerTEXT gibt die den HTML-Text der angefragte Seite zurück.
Gruß
Christian

AW: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfra
20.07.2008 14:56:00
Kurt
Hallo Rolf,
Hallo Christian,
hab Euch heimlich belauscht ;-). Finde sowohl Idee als auch Lösung sehr interessant. Hab jetzt aber noch ein Problem.
Wie bekomme ich die Variablen für LZZ, RE4, STKL, ZKF und R automatisch aus meinen Zellen meiner Excel-Tabelle in die Url-adresse für die Web-Abfrage eingetragen?
Wäre geil so was. Kann jemand helfen?
Viele Grüße aus der Hauptstadt

Anzeige
AW: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfra
20.07.2008 16:45:00
ChristianM
hallo Kurt,
Den String zusammensetzen wie zB.

Option Explicit
Sub GetXmlData()
Dim sUrl$, sTxt$, vTxt, vRes, i&, j&, k&
Dim oIE As Object
Dim lngLZZ&, lngSTKL&, lngRE&
With Sheets("Tabelle1")
k = 4
lngLZZ = CLng(.Cells(2, 1))
lngRE = CLng(.Cells(2, 2))
lngSTKL = CLng(.Cells(2, 3))
sUrl = "https://www.abgabenrechner.de/interface/2008.jsp?LZZ=" & _
lngLZZ & "&RE4=" & lngRE & "&STKL=" & lngSTKL
.Rows(k & ":" & .Rows.Count).ClearContents
' usw.

hier am Bsp von LZZ, RE4 und STKL.
KF und R seh ich bei benannter URL nicht
Gruß
Christian

Anzeige
AW: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfra
21.07.2008 07:33:51
Kurt
Hallo Christian,
hab es zwar noch nicht 100%ig hin bekommen. Hatte aber auch bisher wenig Zeit. Danke für deine Hilfe.
Ach so, ZKF ist der Kinderfreibetrag und R die Religionszugehörigkeit
Viele Grüße aus der Hauptstadt
Kurt

AW: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfra
21.07.2008 20:17:00
Rolf
Hallo Kurt,
meine erste Version:
Option Explicit
'Eingangsparameter
Dim AJAHR, ALTER1, JFREIB, JHINZU, JRE4, JVBEZ, KRV, LZZ, LZZHINZU, LZZFREIB, _
R, RE4, SONSTB, STERBE, STKL, VBEZ, VBEZM, VBEZS, VBS, VJAHR, VKAPA, VMT, _
ZKF, ZMVB
'Ausgangsparameter
Dim BK, BKS, BKV, LSTLZZ, _
SOLZLZZ, SOLZS, SOLZV, STS, STV
Dim sUrlAlt As String

Public Function xlLSTJAHR_BMF(GiltAb, UE_64, _
E_AJAHR, _
RV_FREI, _
E_STKL, _
E_ZKF, _
E_ZMVB, _
E_VJAHR, _
E_R, _
E_LZZ, _
E_JFREIB, _
E_JHINZU, _
E_LZZFREIB, _
E_LZZHINZU, _
BRUTTO, _
BRUTTO_VB, _
VB_Jan, _
E_VBEZS, _
SB, _
E_STERBE, _
SB_VB, _
E_VMT, _
E_VKAPA, _
VJAL, _
VJAL_VB, _
Auswahl)
If Len(GiltAb)  6 Or _
Year(GiltAb)  2008 Then
Exit Function
End If
Dim sUrl$, sTxt$, vTxt, vRes, i&
Dim oIE As Object
sUrl = "https://www.abgabenrechner.de/interface/" & Year(GiltAb) & ".jsp?"
sUrl = sUrl & "ALTER1=" & UE_64 & "&"
sUrl = sUrl & "AJAHR=" & E_AJAHR & "&"
sUrl = sUrl & "LZZHINZU=" & E_LZZHINZU * 100 & "&"
sUrl = sUrl & "HINZUR=" & E_LZZHINZU * 100 & "&"
sUrl = sUrl & "JFREIB=" & E_JFREIB * 100 & "&"
sUrl = sUrl & "JHINZU=" & E_JHINZU * 100 & "&"
sUrl = sUrl & "JRE4=" & VJAL * 100 & "&"
sUrl = sUrl & "JVBEZ=" & VJAL_VB * 100 & "&"
sUrl = sUrl & "KRV=" & RV_FREI & "&"
sUrl = sUrl & "LZZ=" & E_LZZ & "&"
sUrl = sUrl & "R=" & E_R & "&"
sUrl = sUrl & "RE4=" & BRUTTO * 100 & "&"
sUrl = sUrl & "SONSTB=" & SB * 100 & "&"
sUrl = sUrl & "STERBE=" & E_STERBE * 100 & "&"
sUrl = sUrl & "STKL=" & E_STKL & "&"
sUrl = sUrl & "VBEZ=" & BRUTTO_VB * 100 & "&"
sUrl = sUrl & "VBEZM=" & VB_Jan * 100 & "&"
sUrl = sUrl & "VBEZS=" & E_VBEZS * 100 & "&"
sUrl = sUrl & "VBS=" & SB_VB * 100 & "&"
sUrl = sUrl & "VJAHR=" & E_VJAHR & "&"
sUrl = sUrl & "VKAPA=" & E_VKAPA * 100 & "&"
sUrl = sUrl & "VMT=" & E_VMT * 100 & "&"
sUrl = sUrl & "LZZFREIB=" & E_LZZFREIB * 100 & "&"
sUrl = sUrl & "WFUNDF=" & E_LZZFREIB * 100 & "&"
sUrl = sUrl & "ZKF=" & Replace(E_ZKF, ",", ".") & "&"
sUrl = sUrl & "ZMVB=" & E_ZMVB
If sUrlAlt  sUrl Then
Set oIE = CreateObject("InternetExplorer.Application")
oIE.navigate sUrl
Do: Loop Until oIE.Busy = False
Do: Loop Until oIE.Busy = False
sTxt = oIE.document.documentElement.outerTEXT
Set oIE = Nothing
vTxt = Split(sTxt, vbCrLf)
For i = 0 To UBound(vTxt)
If InStr(vTxt(i), "name=") > 0 Then
vRes = Trim(Replace(Replace(vTxt(i), "", ""))
vRes = Trim(Replace(vRes, "eingabe", ""))
vRes = Trim(Replace(vRes, "ausgabe", ""))
vRes = Trim(Replace(vRes, "name=", ""))
vRes = Trim(Replace(vRes, "value=", ""))
vRes = Trim(Replace(vRes, """", ""))
vRes = Split(vRes)
Select Case vRes(0)
Case Is = "BK"
BK = vRes(1)
Case Is = "BKS"
BKS = vRes(1)
Case Is = "BKV"
BKV = vRes(1)
Case Is = "LSTLZZ"
LSTLZZ = vRes(1)
Case Is = "SOLZLZZ"
SOLZLZZ = vRes(1)
Case Is = "SOLZS"
SOLZS = vRes(1)
Case Is = "SOLZV"
SOLZV = vRes(1)
Case Is = "STS"
STS = vRes(1)
Case Is = "STV"
STV = vRes(1)
End Select
End If
Next
sUrlAlt = sUrl
End If
Select Case Auswahl
Case 1                   'Rückgabe Lohnsteuer
xlLSTJAHR_BMF = LSTLZZ / 100
Case 11                  'Rückgabe Lohnsteuer _
(sonstige Einkünfte)
xlLSTJAHR_BMF = STS / 100
Case 111                 'Rückgabe Lohnsteuer _
(mehrjährige Tätigkeit)
xlLSTJAHR_BMF = STV / 100
Case 2                   'Rückgabe Solidaritätszuschlag
xlLSTJAHR_BMF = SOLZLZZ / 100
Case 22                  'Rückgabe Solidaritätszuschlag _
(sonstige Einkünfte)
xlLSTJAHR_BMF = SOLZS / 100
Case 222                 'Rückgabe Solidaritätszuschlag _
(mehrjährige Tätigkeit)
xlLSTJAHR_BMF = SOLZV / 100
Case 3                   'Bemessungsgrundlage für die Kirchensteuer
xlLSTJAHR_BMF = BK / 100
Case 33                  'Bemessungsgrundlage für die Kirchensteuer _
(sonstige Einkünfte)
xlLSTJAHR_BMF = BKS / 100
Case 333                 'Bemessungsgrundlage für die Kirchensteuer _
(mehrjährige Tätigkeit)
xlLSTJAHR_BMF = BKV / 100
Case Else
xlLSTJAHR_BMF = 0
End Select
End Function


Gruß Rolf

Anzeige
AW: Lohnsteuerberechnung (UDF, XLM-Datei, Webabfrage)
20.07.2008 17:14:41
Rolf
Hallo Christian,
nochmals vielen Dank. Damit dürfte ich es fertig bekommen.
Gruß
Rolf
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige