Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1308to1312
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Auswerten der Umsatzsteuer-identifikation über XML

Auswerten der Umsatzsteuer-identifikation über XML
12.04.2013 11:42:39
Stefan
Hallo,
über die Seite https://evatr.bff-online.de/eVatR/xmlrpc/ kann man per xml-Schnittstelle die überprüfung der UstId abfragen.
Ich habe mit hilfe eines anderen Forums die Abfrage soweit auch hinbekommen. (thread von 2009).
Leider fehlt mir die Auswertung von Datum Ort Straße PLZ
Ich habe folgenden VBA-Code
Public Function CheckUST(strURL As String, Optional ByRef strGueltigVon As String = "",  _
Optional ByRef strGueltigBis As String = "") As Integer
Dim oXmlHttp As Object
Dim oXmlDocReponse  As Object
Dim strXmlReponse As String
Set oXmlHttp = CreateObject("MSXML2.XMLHTTP")
Set oXmlDocReponse = CreateObject("MSXML2.DOMDocument")
oXmlHttp.Open "GET", strURL, True
oXmlHttp.send Null
Do Until oXmlHttp.readystate = 4: DoEvents: Loop
strXmlReponse = oXmlHttp.responseText
With oXmlDocReponse
.SetProperty "ServerHTTPRequest", True
.async = False
.LoadXML strXmlReponse
End With
CheckUST = oXmlDocReponse.ChildNodes(0).ChildNodes(1).ChildNodes(0).ChildNodes(0).ChildNodes(0). _
_
ChildNodes(1).Text * 1
strGueltigVon = oXmlDocReponse.ChildNodes(0).ChildNodes(11).ChildNodes(0).ChildNodes(0). _
ChildNodes(0).ChildNodes(1).Text
strGueltigBis = oXmlDocReponse.ChildNodes(0).ChildNodes(12).ChildNodes(0).ChildNodes(0). _
ChildNodes(0).ChildNodes(1).Text
Set oXmlHttp = Nothing
Set oXmlDocReponse = Nothing
End Function
Sub CheckFile()
Dim rngRange As Range
Set rngRange = Range("i2:i11")
Dim rngCell As Range, intRes As Integer, strResponse As String, strGueltigVon As String,  _
strGueltigBis As String
For Each rngCell In rngRange
intRes = CheckUST(rngCell.Text, strGueltigVon, strGueltigBis)
Select Case intRes
Case 200: strResponse = "Die angefragte USt-IdNr. ist gültig."
Case 201: strResponse = "Die angefragte USt-IdNr. ist ungültig."
Case 202: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie ist nicht in der  _
Unternehmerdatei des betreffenden EU-Mitgliedstaates registriert."
Case 203: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie ist erst ab dem " &  _
_
strGueltigVon & " gültig."
Case 204: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie war im Zeitraum von  _
_
" & strGueltigVon & " bis " & strGueltigBis & " gültig."
Case 205: strResponse = "Ihre Anfrage kann derzeit durch den angefragten EU- _
Mitgliedstaat oder aus anderen Gründen nicht beantwortet werden. Bitte versuchen Sie es später  _
noch einmal. Bei wiederholten Problemen wenden Sie sich bitte an das Bundeszentralamt für Steuern - Dienstsitz Saarlouis."
Case 206: strResponse = "Ihre deutsche USt-IdNr. ist ungültig. Eine Bestätigungsanfrage  _
_
ist daher nicht möglich. Den Grund hierfür können Sie beim Bundeszentralamt für Steuern -  _
Dienstsitz Saarlouis - erfragen."
Case 207: strResponse = "Ihnen wurde die deutsche USt-IdNr. ausschliesslich zu Zwecken   _
_
der Besteuerung des innergemeinschaftlichen Erwerbs erteilt. Sie sind somit nicht berechtigt,  _
Bestätigungsanfragen zu stellen. "
Case 208: strResponse = "Für die von Ihnen angefragte USt-IdNr. läuft gerade eine  _
Anfrage von einem anderen Nutzer. Eine Bearbeitung ist daher nicht möglich. Bitte versuchen Sie  _
es später noch einmal. "
Case 209: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht  _
dem Aufbau der für diesen EU-Mitgliedstaat gilt."
Case 210: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie entspricht nicht  _
den Prüfziffernregeln die für diesen EU-Mitgliedstaat gelten."
Case 211: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie enthält unzulässige  _
_
Zeichen. "
Case 212: strResponse = "Die angefragte USt-IdNr. ist ungültig. Sie enthält ein unzulä  _
_
ssiges Länderkennzeichen. "
Case 213: strResponse = "Die Abfrage einer deutschen USt-IdNr. ist nicht möglich. "
Case 214: strResponse = "Ihre deutsche USt-IdNr. ist fehlerhaft. Sie beginnt mit 'DE'   _
_
gefolgt von 9 Ziffern. "
Case 215: strResponse = "Ihre Anfrage enthält nicht alle notwendigen Angaben für eine   _
_
einfache Bestätigungsanfrage (Ihre deutsche USt-IdNr. und die ausl. USt-IdNr.). "
Case 216: strResponse = "Ihre Anfrage enthält nicht alle notwendigen Angaben für eine   _
_
qualifizierte Bestätigungsanfrage (Ihre deutsche USt-IdNr., die ausl. USt-IdNr., Firmenname  _
einschl. Rechtsform und Ort). Die angefragte USt-IdNr. ist gültig. "
Case 217: strResponse = "Bei der Verarbeitung der Daten aus dem angefragten EU- _
Mitgliedstaat ist ein Fehler aufgetreten. Ihre Anfrage kann deshalb nicht bearbeitet werden. "
Case 218: strResponse = "Eine qualifizierte Bestätigung ist zur Zeit nicht möglich. Es   _
_
wurde eine einfache Bestätigungsanfrage mit folgendem Ergebnis durchgeführt: Die angefragte USt- _
IdNr. ist gültig. "
Case 219: strResponse = "Bei der Durchführung der qualifizierten Bestätigungsanfrage  _
ist ein Fehler aufgetreten. Es wurde eine einfache Bestätigungsanfrage mit folgendem Ergebnis  _
durchgeführt: Die angefragte USt-IdNr. ist gültig. "
Case 220: strResponse = "Bei der Anforderung der amtlichen Bestätigungsmitteilung ist   _
_
ein Fehler aufgetreten. Sie werden kein Schreiben erhalten. "
Case 999: strResponse = "Eine Bearbeitung Ihrer Anfrage ist zurzeit nicht möglich.  _
Bitte versuchen Sie es später noch einmal. "
End Select
rngCell.Offset(0, 1) = intRes
rngCell.Offset(0, 2) = strResponse
Next
End Sub

Der ausgewertete Code der Webseite sieht so aus:

UstId_1 DE1111111 ErrorCode 200 UstId_2 SI1111111 Druck ja Erg_PLZ A Ort Rom Datum 12.04.2013 PLZ IT-2500 Erg_Ort A Uhrzeit 09:16:19 Erg_Name A Gueltig_ab Gueltig_bis Strasse Colloseumweg 48 Firmenname Vatikan gmbh Erg_Str A 

mit dem obigen Script wird der errorcode ausgelesen und die antwort ausgegeben.
jetzt würde ich gerne in den Excelspalten L= Datum M=Erg_Name ( in dem Fall wäre das "A") N=Erg_Ort O=Erg_PLZ P=Erg_Str ausgegeben bekommen.
könnt Ihr mir helfen?

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Auswerten der Umsatzsteuer-identifikation über XML
12.04.2013 21:08:10
Oberschlumpf
Hi Stefan
Hier, versuch mal:

'dein Code
'ab hier mein Code
Dim lstrSplit() As String, liIdx As Integer, lstrVar As String
Dim strResponse As String
'die nächste Zeile kannst du wieder löschen.
'Ich benötige "strResponse = "UstId_1 DE1111111...." nur, weil ich ja den Code der Webseite  _
noch weiter auswerten muss,
'und nicht deinen ganzen Code mit übernehmen wollte
strResponse = "UstId_1 DE1111111 ErrorCode 200 UstId_2 SI1111111 Druck ja Erg_PLZ A Ort Rom  _
Datum 12.04.2013 PLZ IT-2500 Erg_Ort A Uhrzeit 09:16:19 Erg_Name A Gueltig_ab Gueltig_bis Strasse Colloseumweg 48 Firmenname Vatikan gmbh Erg_Str A"
lstrSplit = Split(strResponse, "Datum")
lstrSplit(UBound(lstrSplit)) = Trim(lstrSplit(UBound(lstrSplit)))
For liIdx = 1 To Len(lstrSplit(UBound(lstrSplit)))
If Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)  " " Then
lstrVar = lstrVar & Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)
Else
Exit For
End If
Next
Range("L1").Value = CDate(lstrVar) 'in deinem Code muss stehen: rngCell.Offset(0, 12) = ...
lstrVar = ""
lstrSplit = Split(strResponse, "Erg_Name")
lstrSplit(UBound(lstrSplit)) = Trim(lstrSplit(UBound(lstrSplit)))
For liIdx = 1 To Len(lstrSplit(UBound(lstrSplit)))
If Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)  " " Then
lstrVar = lstrVar & Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)
Else
Exit For
End If
Next
Range("M1").Value = lstrVar 'in deinem Code muss stehen: rngCell.Offset(0, 13) = ...
lstrVar = ""
lstrSplit = Split(strResponse, "Erg_Ort")
lstrSplit(UBound(lstrSplit)) = Trim(lstrSplit(UBound(lstrSplit)))
For liIdx = 1 To Len(lstrSplit(UBound(lstrSplit)))
If Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)  " " Then
lstrVar = lstrVar & Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)
Else
Exit For
End If
Next
Range("N1").Value = lstrVar 'in deinem Code muss stehen: rngCell.Offset(0, 14) = ...
lstrVar = ""
lstrSplit = Split(strResponse, "Erg_PLZ")
lstrSplit(UBound(lstrSplit)) = Trim(lstrSplit(UBound(lstrSplit)))
For liIdx = 1 To Len(lstrSplit(UBound(lstrSplit)))
If Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)  " " Then
lstrVar = lstrVar & Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)
Else
Exit For
End If
Next
Range("O1").Value = lstrVar 'in deinem Code muss stehen: rngCell.Offset(0, 15) = ...
lstrVar = ""
lstrSplit = Split(strResponse, "Erg_Str")
lstrSplit(UBound(lstrSplit)) = Trim(lstrSplit(UBound(lstrSplit)))
For liIdx = 1 To Len(lstrSplit(UBound(lstrSplit)))
If Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)  " " Then
lstrVar = lstrVar & Mid(lstrSplit(UBound(lstrSplit)), liIdx, 1)
Else
Exit For
End If
Next
Range("P1").Value = lstrVar 'in deinem Code muss stehen: rngCell.Offset(0, 16) = ...
Hilfts?
Ciao
Thorsten
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige