VBA Excel zu XML
Stefan Bauer
- programmiertechnik
Hallo liebe Forumsgemeinde.
ich möchte gern mittels Makro ein Excelfile zu XML exportieren.
Ich habe ein Excel mit drei Spalten:
ID || Name || Level
Insgesamt habe ich drei Level, die eigentlich folgendermaßen geschachtelt werden sollen:
Level1
Level2
Level3
Level1
Level2
Level3
Und irgendwie steh ich total auf dem Schlauch.
Hierm mal mein bisheriges Experiment:
Sub TextDateiErzeugen()
Dim FS As Object, MeinFile As Object
Dim Zelle As Range, Bereich As Range
Set FS = CreateObject("Scripting.FileSystemObject")
Set MeinFile = FS.CreateTextFile(Application.GetSaveAsFilename("werteliste.xml", "XML Datei (*.xml), *.xml", , "XML Datei speichern"), True)
MeinFile.WriteLine ("<xml><werteliste_data>")
With ThisWorkbook.Worksheets("Tabelle1")
Set Bereich = .Range("a2:c" & .Range("c65536").End(xlUp).Row)
End With
Dim regionVal
Dim companyVal
Dim spalte1
Dim spalte2
Dim spalte3
Dim Zelle1 As Range
Dim Zelle2 As Range
For Each Zelle In Bereich
If Zelle.Offset(0, 2).Text = 1 Then
spalte = "Region"
End If
If Zelle.Offset(0, 2).Text = 2 Then
spalte = "Company"
End If
If Zelle.Offset(0, 2).Text = 3 Then
spalte = "Site"
End If
MeinFile.WriteLine (" <" & spalte & ">")
MeinFile.WriteLine (" <name>" & Zelle.Offset(0, 1).Text & "</name>")
MeinFile.WriteLine (" <" & spalte & ">")
MeinFile.WriteLine (" <name>" & Zelle.Offset(0, 1).Text & "</name>")
MeinFile.WriteLine (" <" & spalte & ">")
MeinFile.WriteLine (" <name>" & Zelle.Offset(0, 1).Text & "</name>")
MeinFile.WriteLine (" </" & spalte & ">")
MeinFile.WriteLine (" </" & spalte & ">")
MeinFile.WriteLine (" </" & spalte & ">")
er gibt mir zwar schön was aus, aber leider nicht in der Reihenfolge, wie ich das gern hätte.
Hat jemand einen Denkanstoß für mich?
Danke
Stefan
Hallo,
Ich habe ein Excel mit drei Spalten:
ID || Name || Level
Beispieldaten?
For Each Zelle In Bereich
wo ist denn End For?
If Zelle.Offset(0, 2).Text = 1 Then
spalte = "Region"
End If
If Zelle.Offset(0, 2).Text = 2 Then
spalte = "Company"
End If
If Zelle.Offset(0, 2).Text = 3 Then
spalte = "Site"
End IfMeinFile.WriteLine (" <" & spalte & ">")
Diese Ausgaben sollten dann doch auch in der For-Schleife und in den If-Bereichen abgehandelt werden, oder?
Hat jemand einen Denkanstoß für mich?
hth
Gruß
Kalk