Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten-Import aus XML-Daten

Forumthread: Daten-Import aus XML-Daten

Daten-Import aus XML-Daten
22.07.2021 12:33:37
Quaelgaeist
Hallo, unser ERP-Programm gibt Auftragsbestätigungen, Lieferscheine und Rechnungen als XML-Datensatz aus.
Bis jetzt hat ein Makro in einer Exceldatei diese XML-Datei ausgelesen und Daten importiert, dann weitere Makros aufgerufen. Das Schema (.xsd) wird aus dem WWW abgerufen, die passende URL dazu gibt das ERP Programm in der .XML mit.
Das hat funktioniert mit:

Sub Daten_holen()
' Daten_holen Makro
' Holt die Daten aus der von ERPPROGRAMM erstellten xml Datei passend zur in B1+C1 eingegebenen Auftragsnummer und überschreibt diese in Arbeitsblatt xml-Daten
Application.ScreenUpdating = False  'Damit Bildschirm erst nach Berechnung aller Zellen aktualisiert wird, verhindert Flimmern
For Each Worksheet In ThisWorkbook.Worksheets
Worksheet.Unprotect
Next Worksheet
'Dateinamenschema (ABNr), Pfad und Datei für Suche von xml-Dateien festlegen:
Dim Datei, Nr, Typ As String
Nr = Worksheets("Stab").[B1].Value & Worksheets("Stab").[C1].Value
Typ = Worksheets("Stab").[A1].Value & "_"
Const pfad = "\\SERVERNAME\ERP-ORDNER\xml-export\"
Datei = dir(pfad & Typ & Nr & "*.xml")
'xml in Arbeitsblatt xml-Daten (mit XmlMap "AB) importieren und weitere Module aufrufen
If Datei  "" Then
ThisWorkbook.XmlMaps("AB").Import URL:=pfad & Datei
Call Ankeranzahl_auslesen
Call Ankerbeschreibung_zerlegen
Call Skizze
Call Stkliste
Call Materialbedarf
Call Reset_Arbeitsvorgabe
Call Datei_ablegen
Else
MsgBox "xml-Datei nicht gefunden!"
End If
Worksheets("Stab").Activate
Application.ScreenUpdating = True   'Zurücksetzen der geänderten Einstellung bei Makroende
'For Each Worksheet In ThisWorkbook.Worksheets
'       Worksheet.Protect
'Next Worksheet
End Sub
ab dem Zeitpunkt einer Änderung der URL durch den Hersteller des ERP Programms in den XML-Exporten, gibt es in Excel für die neu ausgegebenen XML-Dateien die Fehlermeldung "Fehler bei der Schemaüberprüfung". Wen wunderts?
Ich habe in den Entwicklertools XML -> Quelle -> XML Zuordnungen eine aktuelle XML-Datei eingelesen um den Namespace hinzuzufügen und habe den Namen angepasst (AB).
Jetzt kommt in Zeile:

ThisWorkbook.XmlMaps("AB").Import URL:=pfad & Datei
die Fehlermeldung

Laufzeitfehler '1004':
Es wurden keine Daten importiert, weil keine Elemente zugeordnet wurden.
Range.XPath.SetValue kann verwendet werden, um die XML-Elemente des Arbeitsblattes zuzuordnen.
Ab hier stehe ich komplett an. Kann mir jemand weiterhelfen?
Vielen Dank
Quaelgaeist
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten-Import aus XML-Daten
23.07.2021 00:24:18
Yal
Hallo Quael,
hast Du vor, die ganze Verarbeitung innerhalb eines XML-Objekt vorzunehmen, oder ist es dein Ziel, so schnell wie möglich daraus eine Excel.Datei zu machen?
Dann würde ich jede Datei mit openxml öffnen
https://docs.microsoft.com/de-de/office/vba/api/excel.workbooks.openxml
und die Daten in gewohnten Excel-Form verarbeiten.
Ansonsten könntest Du mit Power Query versuchen.
VG
Yal
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

XML-Daten in Excel importieren: Schritt-für-Schritt-Anleitung


Schritt-für-Schritt-Anleitung

Um XML-Daten in Excel zu importieren, gehe wie folgt vor:

  1. XML-Datei vorbereiten: Stelle sicher, dass die XML-Datei korrekt formatiert ist und alle benötigten Daten enthält.
  2. Excel öffnen: Starte Microsoft Excel und öffne ein leeres Arbeitsblatt.
  3. XML-Daten importieren:
    • Gehe zu Daten > Abrufen und transformieren > Aus Datei > Aus XML.
    • Wähle deine XML-Datei aus und klicke auf Importieren.
  4. XML-Zuordnungen überprüfen:
    • Gehe zu Entwicklertools > XML > XML-Zuordnungen.
    • Stelle sicher, dass die XML-Zuordnung korrekt ist und alle benötigten Elemente zugeordnet sind.
  5. Daten importieren: Klicke auf OK, um die Daten in dein Excel-Arbeitsblatt zu importieren.

Häufige Fehler und Lösungen

  • Fehler bei der Schemaüberprüfung: Dieser Fehler tritt auf, wenn die XML-Datei nicht dem erwarteten Schema entspricht. Überprüfe, ob das XML-Schema korrekt ist und alle erforderlichen Namespaces definiert sind.

  • Laufzeitfehler '1004': Dieser Fehler kann auftreten, wenn keine Elemente in die Excel-Zuordnung importiert wurden. Überprüfe die XML-Zuordnungen und stelle sicher, dass alle benötigten Elemente korrekt zugeordnet sind.

  • Adobe XML-Dateien können nicht zusammengeführt werden: Beachte, dass einige Adobe XML-Dateien nicht direkt in Excel importiert werden können. Du musst sie eventuell zuerst in ein anderes Format konvertieren.


Alternative Methoden

Wenn du Schwierigkeiten hast, XML-Daten in Excel zu importieren, kannst du auch folgende Methoden ausprobieren:

  • Power Query verwenden: Mit Power Query kannst du XML-Daten auf einfache Weise importieren und transformieren. Gehe zu Daten > Daten abrufen > Aus Datei > Aus XML.

  • VBA-Makros nutzen: Verwende VBA, um XML-Dateien automatisiert zu importieren. Hier ist ein einfaches Beispiel:

Sub ImportXML()
    Dim xmlFile As String
    xmlFile = "C:\path\to\file.xml" ' Pfad zur XML-Datei
    ThisWorkbook.XmlMaps("MapName").Import URL:=xmlFile
End Sub
  • Workbooks.OpenXML: Du kannst auch die Methode workbooks.openxml nutzen, um XML-Dateien zu öffnen und die Daten direkt in Excel zu verarbeiten.

Praktische Beispiele

  1. Einzelne XML-Datei importieren: Wenn du eine einzelne XML-Datei hast, kannst du die oben genannten Schritte nutzen, um die Datei zu importieren.

  2. Mehrere XML-Dateien in Excel importieren: Wenn du mehrere XML-Dateien hast, kannst du ein VBA-Makro verwenden, um sie nacheinander zu importieren. Beispiel:

Sub ImportMultipleXML()
    Dim xmlDir As String
    Dim xmlFile As String
    xmlDir = "C:\path\to\xml\files\"
    xmlFile = Dir(xmlDir & "*.xml")

    Do While xmlFile <> ""
        ThisWorkbook.XmlMaps("MapName").Import URL:=xmlDir & xmlFile
        xmlFile = Dir
    Loop
End Sub

Tipps für Profis

  • XML-Daten vorab prüfen: Überprüfe immer die XML-Datei auf Formatierungsfehler, bevor du mit dem Import in Excel beginnst.

  • Makros optimieren: Wenn du häufig XML-Daten importierst, erstelle ein Makro, das den gesamten Prozess automatisiert. Das spart Zeit und minimiert Fehler.

  • Schema aktualisieren: Halte dein XML-Schema immer aktuell, insbesondere wenn dein ERP-System Änderungen vornimmt.


FAQ: Häufige Fragen

1. Wie kann ich eine XML-Datei in Excel öffnen?
Du kannst eine XML-Datei in Excel öffnen, indem du zu Daten > Aus Datei > Aus XML gehst und die entsprechende Datei auswählst.

2. Was tun, wenn Excel keine Daten importiert?
Überprüfe die XML-Zuordnungen und stelle sicher, dass alle Elemente korrekt zugeordnet sind. Eventuell musst du das XML-Schema anpassen.

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