Clever-Excel-Forum

Normale Version: .xml-Datein exportieren
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo alle zusammen,

ich habe ein erneutes Problem und dachte ich wende mich wieder an euch.

Wie ich .xml-Dateien erstelle und dann im Excel bearbeite habe ich herausgefunden. Funktioniert auch alles fast schon so wie gewünscht. Nun habe ich sage ich mal 100 .xml-Dateien bearbeitet untereinander in der Excel-Tabelle. Diese alle einzeln zu exportieren und alle einzeln zu benennen ist doch sehr müßig und zeitraubend. Deshalb ist meine Frage:

Kann man irgendwie alle .xml-Dateien auf einmal exportieren und sagen wir mal alle nach einer bestimmten Zelle automatisch benennen lassen? Z.B. Datei 1 heißt dann wie die Zelle M1, Datei 2 wie die Zelle M2 usw.

Ich hoffe mir kann jemand weiterhelfen [img=16x15]
Dateiupload bitte im Forum! So geht es: Klick mich!
]

Liebe Grüße

Lukas
Hallo Lukas,

wenn Du das automatisieren willst, benötigst Du ein Makro.
Wenn Du die 100 "Dateien" alle untereinander auf einem Excel-Blatt hast, musst Du die ja erst mal auseinanderklabüsern, oder? Ansonsten speicherst Du 100 mal alle 100 Sad Kann man bei Deinen Daten Anfang und Ende erkennen? Ist das reiner XML-Text oder willst Du die Daten als XML speichern?
Falls XML-Text, da jeweils eine Leerzeile dazwischen und sonnst alles dicht bei dicht?
Falls Daten, wie trennst Du selbige für die 100 "Dateien" ?
Speichern tust Du die mit Excel Speichern unter xml, oder müsste es im ersten Fall nicht eigentlich eine Textdatei werden?
....
Hallo schauan,

erstmal danke für die Antwort.
Ich versuch mein ganzes Problem nochmal besser zu erklären. Ich habe eine .xml Datei (sozusagen als Muster). Dieses Muster exportier ich in die Excel-Tabelle. Dies sieht dann so aus:
[
Bild bitte so als Datei hochladen: Klick mich!
]
In der Spalte Item möchte ich nun aus der Messstellenliste meine Messstellennummern reinkopieren.
[
Bild bitte so als Datei hochladen: Klick mich!
]
Wenn ich dies gemacht habe gehe ich auf die Zeile "Rechtsklick->XML->Speichern" und gebe einen neuen Namen für die erstellte .xml Datei ein. Das Ganze für eine Datei zu machen wäre kein Problem, nun habe ich aber 100+x Messstellen die ich so abspeichern möchte und wenn ich alle einzeln abspeichern müsste hätte ich zeitlich nichts gewonnen. 
Deshalb meine Frage: Ist es möglich das ich alle aufeinmal in 100 einzelne Dateien abspeichen kann und Excel diese nach der Spate Item benennt.

Ich hoffe mein Problem ist jetzt etwas klarer erklärt.

Gruß

Lukas
Hallo Lukas,

eventuell hängst Du mal eine XML-Muster und ein Excelmuster an. Mit einem Bild kann man schlecht programmieren und eine XML besteht ja nicht nur aus einer Datenzeile...
Hallo,

also wenn ich die .xml Datei im Notepad öffne erscheint folgender Text:

< Session > < Hostname Remote = "0" RemoteHost = "\\WIN-CKQMF9UJQTA" > < Server Name = "Freelance2000OPCServer.88.1" Connected = "1" GroupCount = "1" > < Group Name = "Come" Active = "-1" ReqUpdateRate = "1000" TimeBias = "0" PercentDeadband = "0,00" Connected = "2" ItemCount = "1" > < Item AccessPath = "" Active =" -1" ReqDataType = "0" > MUSTER_IN < /Item > < /Group > < /Server > < /Hostname > < /Session >

habe 1000 Leerzeichen reinklatschen müssen weil es anders nicht im Beitrag übernommen wird....

Wenn ich nun das ganze ins Excel importiere sieht das dann so aus:

[
Bild bitte so als Datei hochladen: Klick mich!
]


Gruß

Lukas
Hallo Lukas,

so wie es ausschaut, hast Du die Inhalte der xml als Text in Excel eingefügt und da sollte es reichen, den Zellinhalt in eine Datei zu schreiben und die Dateiextension auf xml zu setzen.

Rausschreiben kanst Du sie so, markiere vor Ausführung nur alle auszugebenden Daten. Die Dateinamen müssen komplett mit Pfad in den Zellen der Spalte neben den Daten stehen.

Code:
Sub Rausschreiben()
'Variablendeklaration
'Bereich (Zelle aus markiertem Bereich)
Dim rngZelle As Range
'Schleife ueber jede Zelle des selektierten Bereichs
For Each rngZelle In Selection
  'Datei zum schreiben oeffnen, Dateiname steht neben der selektierten Zelle
  Open rngZelle.Offset(, 1).Value For Output As #1
  'Zellinhalt ausgeben
  Print #1, rngZelle.Value
  'Datei schliessen
  Close 1
'Ende Schleife ueber jede Zelle des selektierten Bereichs
Next
End Sub