Brauchen Sie Hilfe?
Web:     Online-Formular
E-Mail:  
Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Tel:       +49(0)151 / 164 55 914

Nutzen Sie für Ihre Anfrage unser Online-Formular oder senden Sie uns eine E-Mail an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!. Gerne können Sie aber auch direkt telefonisch Kontakt aufnehmen.

   
     Referenzen
 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   

XML Datei per VBA erzeugen

In diesem Beispiel zeigen wir Ihnen, wie XML Dateien per VBA erzeugt werden können.

Als Ausgangsdatei dient eine kleine Adressliste, die als XML-Datei abgespeichert werden soll, siehe Abbildung.


Abb: Adressliste

Der VBA-Code soll nun ab Zeile 6 die Einträge Vorname, Nachname und Ort mit den entsprechenden Tags in eine XML-Datei schreiben. Die XML-Datei soll wie folgt aufgebaut sein:

 

Erfassen Sie dazu in einem Code-Modul den folgenden VBA-Code:

Sub XML_Export()
'*****************************************
'** Excel-Inside Solutions - (C) 2015                    *
'*****************************************
'** Dimensionierung der Variablen
Dim strFile As String, Text As String
Dim lngRow, lngCol As Long
Dim varShow
'** Errorhandling
On Error GoTo Fehlermeldung
'** XML-Dateipfad und -Name festlegen
strFile = ThisWorkbook.Path & "\test.xml"
'** Datei (ASCII) öffnen
Open strFile For Output As #1
'** XML-Header schreiben
Print #1, "<?xml version=""1.0"" encoding=""UTF-8"" standalone=""yes""?> "
Print #1, "<daten xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"">"
'** Mit Schleife die ersten 3 Spalten der Tabelle schreiben
For lngRow = 6 To ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
'** Schreiben Datensatz-Beginn
 Print #1, "<Adresse ID=""" & lngRow - 5 & """>" 'Tag Anfang
 
 '** Schreiben der Felder (Spalten A-C)
 Print #1, "<Vorname>" & Cells(lngRow, 1) & "</Vorname>"
 Print #1, "<Nachname>" & Cells(lngRow, 2) & "</Nachname>"
 Print #1, "<Ort>" & Cells(lngRow, 3) & "</Ort>"
 
 '** Schreiben Datensatz-Ende
 Print #1, "</Adresse>"
Next lngRow
'** Daten-Tag schließen
Print #1, "</daten>"
'** XML-Datei schließen
Close #1
'** Aufruf des Editors mit der geschriebenen xml-Datei
varShow = Shell(Environ("windir") & "\notepad.exe " & strFile, 1)
Exit Sub
'** Errorhandling
Fehlermeldung:
Close #1
 MsgBox "Fehler-Nr.: " & Err.Number & vbNewLine & vbNewLine _
 & "Beschreibung: " & Err.Description _
 , vbCritical, "Fehler"
End Sub

Die XML-Daten-Struktur wird mit diesem VBA-Code erzeugt und in der Datei "test.xml" im gleichen Verzeichnis abgelegt, in der sich die Excel-Datei befindet.

Das Ergebnis sieht wie folgt aus:

 
Abb: XML-Datenstruktur

Hinweis:

Dieser Beispielcode wandelt Umlautet nicht nicht in einen XML-Konformen String um. Dies muss zusätzlich implementiert werden.

Die Beispieldatei kann über den folgenden Link heruntergeladen werden.

 

Import von XML-Dateien

Nun haben Sie erfahren, wie sie per VBA ganz einfach XML Dateien exportieren können. Um diese erzeugen XML-Dateien wieder zu importieren, also einzulesen gehen Sie wie folgt vor:

  1. Öffnen Sie den XML-Importbefehl über das Menü Daten | Verbindungen | Externe Daten abrufen | Aus anderen Quellen | Vom XML-Datenimport
  2. Öffnen Sie in dem Import "Datenquelle auswählen" unsere exportierte Datei Text.xml oder jede andere beliebige XML-konforme Datei
  3. Nach einem Klick auf die Schaltfläche Öffnen wird die XML-Datei importiert und in eine Excel-Tabelle eingelesen, siehe Abbildung.


Abb. importierte XML-Datei

Wie Sie sehen, verfügt Excel über eine komfortable XML-Importfunktion. Diese prüft beim Importvorgang die XML-Datei und gibt entsprechende Fehlermeldungen aus, falls die zu importierende Datei nicht konsistent ist.

 

   

Relevante Artikel

  • Markierte Zellen summieren

      Mit dieser Prozedur, werden alle markierten Zellen summiert. Dabei wird geprüft, ob die einzelnen Zellen eine Zahl enthalten. Nur dann wird die Zelle in die Summenbildung mit einbezogen.   Geben Sie...

  • Autokorrekturliste auslesen

    Wie alle Office-Programme, enthält auch Excel die Autokorrektur-Funktion. Ab Excel 2007 ist diese über die Backstage (Datei / Excel Optionen / Dokumentprüfung / Schaltfläche...

  • Gültigkeitsprüfung per Optionsbutton festlegen

    Normalerweise wird über die Funktion Daten / Datentools / Datenüberprüfung die Gültigkeit für eine Zelle oder einen Zellbereich individuell festgelegt. In diesem Beispiel zeigen wir Ihnen, wie sich...

  • Gelöschte Elemente aus PivotTable Auswahl entfernen

    Ein bekanntes Problem im Zusammenhang mit PivotTables ist die Tatsache, dass Einträge die aus der Quelldatei für die PivotTable gelöscht wurden, weiterhin im Auswahlfeld der PivotTable vorhanden...

  • Online-Status prüfen

    Dieses Beispiel zeigt, wie sich der Online-Status per VBA überprüfen lässt. Mit Hilfe des Codes wird geprüft, ob der Computer mit dem Internet verbunden ist oder nicht und gibt eine entsprechende...

   

Excel-Inside auf Facebook Excel-Live News blog Excel-Inside RSS-Feed Twitter Account für Excel-Inside Mail an Excel-Inside 

Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
Unsere Produkte
Office Schulungen VBA, Excel, Access
E-Book Formeln und Funktionen Excel 2013