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

XML in Excel via VBA

Forumthread: XML in Excel via VBA

XML in Excel via VBA
04.03.2020 10:02:46
Thorben
Guten Tag. Ich habe in meinem Praktikum eine Aufgabe bekommen bei der ich seit mehreren Tagen ein größeres Problem habe. Da mir keiner in der Abteilung helfen kann dachte ich, ich frage mal hier.
So zur Aufgabenstellung.
Ich soll einen Button in ein Tabellenblatt einfügen mit dem ich mehrere XML Dateien oder gleich einen ganzen ordner voll mit XML Datein in eine einzelne Tabelle einfügen kann. Quasi genau das was der Import Button von Excel selbst auch macht (Dieser button ist allerdings keine Option da es für Kunden der Firma kompliziert sein könnte diesen einzurichten).
Ich habe mittlerweile schon ein bisschen im Netz gesucht und denke ich auch einen guten ansatz gefunden, leider fügt der VBA code die XML dateien aber in unterschiedliche Tabellen auf dem selben Blatt. Das kann ich aber leider für die weitere Daten verarbeitung nicht gebrauchen.
Habt ihr vllt eine Lösung für mein Problem?
Danke schon mal im Vorraus für jede Antwort
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

XML in Excel via VBA: So importierst du mehrere XML-Dateien in eine Tabelle


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.

  2. Neues Modul einfügen: Klicke mit der rechten Maustaste auf dein Projekt im Projektfenster, wähle Einfügen und dann Modul.

  3. VBA-Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub ImportXMLFiles()
       Dim xmlFile As Variant
       Dim folderPath As String
       Dim xmlDoc As Object
       Dim ws As Worksheet
       Dim lastRow As Long
    
       ' Ordnerpfad festlegen
       folderPath = "C:\Dein\Ordner\Pfad\" ' Pfad zu deinem XML-Ordner
    
       ' Arbeitsblatt festlegen
       Set ws = ThisWorkbook.Sheets("Tabelle1") ' Tabelle in die importiert werden soll
    
       ' XML-Dateien aus dem Ordner einlesen
       xmlFile = Dir(folderPath & "*.xml")
       Do While xmlFile <> ""
           Set xmlDoc = CreateObject("MSXML2.DOMDocument")
           xmlDoc.Load folderPath & xmlFile
    
           ' Hier kannst du die Logik hinzufügen, um die Daten zu extrahieren
           lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row + 1
           ws.Cells(lastRow, 1).Value = xmlDoc.DocumentElement.SelectSingleNode("//DeinXPathNode").Text ' Beispiel für den XPath
    
           xmlFile = Dir
       Loop
    End Sub
  4. Code anpassen: Ändere den folderPath und den XPath im Code gemäß deinen Anforderungen.

  5. Button zur Ausführung hinzufügen: Füge einen Button in dein Excel-Blatt ein und verlinke ihn mit der ImportXMLFiles-Subroutine.

  6. Code ausführen: Klicke auf den Button, um die XML-Dateien in Excel zu importieren.


Häufige Fehler und Lösungen

  • Fehler beim Laden der XML-Datei: Stelle sicher, dass der Pfad zur XML-Datei korrekt ist und die Datei im richtigen Format vorliegt.
  • Daten werden in mehreren Blättern abgelegt: Überprüfe den Code und stelle sicher, dass die Daten in die richtige Tabelle geschrieben werden, wie im obenstehenden Beispiel gezeigt.
  • Leere Zellen nach dem Import: Überprüfe den XPath, um sicherzustellen, dass du die korrekten Knoten aus der XML-Datei abfragst.

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du auch die integrierte Funktion zum Importieren von XML-Dateien in Excel nutzen:

  1. Daten > Aus anderen Quellen > Aus XML-Datenquelle auswählen.
  2. Den Pfad zur XML-Datei angeben und die Daten importieren.
  3. Diese Methode unterstützt jedoch nicht den Import mehrerer XML-Dateien gleichzeitig.

Praktische Beispiele

  1. Importiere eine XML-Datei mit Kundendaten: Verwende den XPath, um spezifische Kundendaten aus der XML-Datei auszulesen und in deine Excel-Tabelle zu übertragen.
  2. Mehrere XML-Dateien von einem Server einlesen: Implementiere eine Schleife, die alle XML-Dateien von einem bestimmten Server abruft und in dein Excel-Dokument importiert.

Tipps für Profis

  • Erweitere den Code: Füge Fehlerbehandlungen hinzu, um den Code robuster zu machen.
  • Nutze Arrays: Wenn du große Datenmengen importierst, kann die Verwendung von Arrays die Performance verbessern.
  • Dokumentation: Halte deinen Code gut dokumentiert, um später Anpassungen vorzunehmen.

FAQ: Häufige Fragen

1. Wie kann ich eine XML-Datei in Excel umwandeln?
Du kannst das integrierte Importwerkzeug oder VBA verwenden, um XML-Daten in eine Excel-Tabelle zu importieren.

2. Ist es möglich, mehrere XML-Dateien in Excel zu importieren?
Ja, mit dem richtigen VBA-Skript kannst du mehrere XML-Dateien in eine einzige Excel-Tabelle importieren.

3. Welche Excel-Version benötige ich für den XML-Import?
Die Vorgehensweise funktioniert in den meisten aktuellen Excel-Versionen, z.B. Excel 2016 und neuer.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige