Projektanfrage

Projektanfrage über Web Formular   per Online-Formular 
Projektanfrage über E-Mail  Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!
Projektanfrage per Telefon  +49 (0)151 / 164 55 914
Projektanfrage weitere Informationen  weitere Informationen 

Sie benötigen Hilfe oder Unter-stützung? Nutzen Sie für Ihre Anfrage unser Online-Formular, senden Sie uns eine Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! oder rufen Sie uns einfach an.

   
      Referenzen 

 Bosch 
  T-Systems
  Hagebau
  Siemens
 Areva  VW
 Haufe-Lexware  British American Tobacco
  nagel group farbe
   
     Programmierung
Excel Auftragsprogrammierung Access Auftragsprogrammierung
Word Auftragsprogrammierung Outlook Auftragsprogrammierung
   
   

Projektanfrage

 Sie benötigen eine Auftragsprogrammierung?
 Oder suchen Unterstützung bei der Lösungs-
 findung?

  Nutzen Sie unser Auftragsformular

  Jetzt anrufen unter 0151 / 164 55 914

 Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! Projektanfrage per Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! senden

  Weitere Informationen

sitepanel question2

P
r
o
j
e
k
t
a
n
f
r
a
g
e
   

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

  • Zahlen in Text umwandeln

    Mit Hilfe des nachfolgend vorgestellten VBA-Codes, können Zahlen (Ziffern) in Wörter (Zahlwörter) umgewandelt werden. So wird beispielsweise die Zahl 91.256.378 in das Zahlwort...

  • Übersicht aller integrierten Excel-Dialoge

    108035 Das folgende Makro ruft einen in Excel integrierten Dialog auf. Im Beispiel den Dialog 'Speichern unter'. Die untenstehende Tabelle beinhaltet alle in Excel integrierten Dialoge, die...

  • Gruppieren und Filtern trotz Blattschutz

    Sobald der Blattschutz aktiviert ist, gibt es keine Möglichkeit mehr, die Gruppierungsfunktion bzw. die Autofilterfunktion über Excel-Standards zu nutzen. Gleichgültig, welche Schutzoption aktiviert bzw....

  • Entwicklungsumgebung ein- und ausblenden

    400004 Mit dem folgenden Makro kann die Entwicklungsumgebung, die normalerweise mit Alt+F11 gestartet wird ein- bzw. ausgeblendet werden.Entwicklungsumgebung einblendenPrivate Sub...

  • Zellinformationen per Funktion auslesen

    112019 Diese Funktion liest verschiedene Zellinformationen aus und zeigt diese an.Public Function zellinfo(zelle As Range, i As Integer)Select Case iCase 1    zellinfo = zelle.AddressCase 2    zellinfo = zelle.ValueCase 3    zellinfo = zelle.FormulaLocalCase 4    If zelle.HasFormula = True Then        zellinfo = "Formel"    ElseIf IsNumeric(zelle) Then        zellinfo = "Zahl"    Else: zellinfo = "Text"    End IfCase Else    zellinfo = "nicht vergeben"End SelectEnd FunctionDie Funktion rufen Sie wie folgt auf:=zellinfo(zelle;paramter) Folgende...