Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sheet-Inhalt in XML-Datei speichern

Sheet-Inhalt in XML-Datei speichern
26.05.2020 19:30:59
Christian
Hallo zusammen,
ich benötige Eure Hilfe für ein Thema, was sich einfach anhört, wobei ich aber etwas verzweifle:
Ich habe über in einem Excel-Sheet "XML" eine XML-Struktur zusammengebaut, welche ich momentan markiere und dann in eine Textdatei kopiere, welche dann in *.xml umbenannt wird.
Dieses wollte ich gerne per Button machen, da der Name der XML-Datei sich u.a. auch aus einer Zelle in einem anderen Excel-Sheet "Eingabe" Zelle K5 zusammengesetzt wird.
Ein Abspeichern des Sheets per Datei - Speichern unter "txt" funktioniert nicht sauber - Umlaute äüö werden als "komische Zeichen" in Notepad++ angezeigt. Ein anderen Weg hat mit die Struktur zwar abgespeichert, jedoch an einigen Stellen einfach Anführungszeichen am Anfang "" gesetzt. Somit ließ die Struktur sich nicht weiterverarbeiten.
Eine Excel-Beispieldatei habe hier beigefügt - https://www.herber.de/bbs/user/137765.xlsm
Ich bin für jeden Tipp dankbar ...
Viele Grüße
Christian
Variante 1:
Private Sub CommandButton2_Click()
Dim Bereich As Range, Zeile As Long, Spalte As Long
Dim AusZelle As String
Set Bereich = ThisWorkbook.Worksheets("XML").Range("A1:C63")
AusZelle = InputBox("Bitte die PM-Nummer des Prüfmittels eingeben." & vbNewLine & vbNewLine & " _
Unter dieser Nummer wird die Auswertung im Pfad" & vbNewLine & "C:\TEMP\XML-Dateien\" & vbNewLine & "gespeichert ..." & vbNewLine & vbNewLine & "YYYYMMMDD_PM-Nmmer_EXT:", , ThisWorkbook.Worksheets("Eingabe").Range("K5"))
Open "C:\TEMP\XML-Dateien\" & Format(Date, "YYYYMMDD") & "_" & AusZelle & "_EXT" + ".xml" For  _
Output As #1
For Zeile = 0 To Bereich.Rows.Count - 1
For Spalte = 0 To Bereich.Columns.Count - 1
Print #1, Bereich.Cells(1).Offset(Zeile, Spalte).Value & "  ";
Next Spalte
Print #1,
Next Zeile
Close #1
MsgBox "Die Datei wurde unter" & vbNewLine & vbNewLine & "C:\TEMP\XML-Dateien\" & Format(Date, " _
YYYYMMDD") & "_" & AusZelle & "_EXT" + ".xml" & vbNewLine & vbNewLine & "gespeichert !", vbibformation
End Sub

Variante 2:
Private Sub CommandButton3_Click()
Application.ScreenUpdating = False
ThisWorkbook.Worksheets("Porsche XML").Copy
Dim neuName As String
neuName = InputBox("Bitte die PM-Nummer des Prüfmittels eingeben." & vbNewLine & vbNewLine & " _
Unter dieser Nummer wird die Auswertung im Pfad" & vbNewLine & "C:\TEMP\XML-Dateien\" & vbNewLine & "gespeichert ..." & vbNewLine & vbNewLine & "PM-Nmmer:", , ThisWorkbook.Worksheets("Eingabe").Range("K5"))
'Pfad anpassen "D:\?\
Application.DisplayAlerts = False 'Fehlermeldungen aus
ActiveWorkbook.SaveAs Filename:="C:\TEMP\XML-Dateien\" & neuName & ".xml", FileFormat:= _
xlTextWindows, _
Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
CreateBackup:=False
Application.DisplayAlerts = True ' Fehlermeldungen an
'Pfad anpassen "D:\?\
MsgBox "Die Datei wurde unter" & vbNewLine & vbNewLine & "C:\TEMP\XML-Dateien\" & neuName & ". _
xml" & vbNewLine & vbNewLine & "gespeichert !", vbibformation
Application.ScreenUpdating = True
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sheet-Inhalt in XML-Datei speichern
26.05.2020 19:48:34
Christian
Anbei noch eine ergänzte Excel-Datei mit 2 Buttons für die beiden beschriebenen Varianten zum Ausprobieren https://www.herber.de/bbs/user/137768.xlsm
AW: Sheet-Inhalt in XML-Datei speichern
27.05.2020 09:48:37
peterk
Hallo
Im UTF-8 Format schreiben get nur mit ADO

Private Sub CommandButton2_Click()
Dim DateiName As String
Dim row_number As Long
Dim myTextLine As String
Dim objStream As Object
Dim Bereich As Range, Zeile As Long, Spalte As Long
Dim AusZelle As String
Set Bereich = ThisWorkbook.Worksheets("XML").Range("A1:C63")
AusZelle = InputBox("Bitte die PM-Nummer des Prüfmittels eingeben." & vbNewLine & vbNewLine  _
& _
"Unter dieser Nummer wird die Auswertung im Pfad" & vbNewLine & _
"C:\TEMP\XML-Dateien\" & vbNewLine & "gespeichert ..." & vbNewLine &  _
vbNewLine & _
"YYYYMMMDD_PM-Nmmer_EXT:", , ThisWorkbook.Worksheets("Eingabe").Range("K5")) _
DateiName = "C:\TEMP\XML-Dateien\" & Format(Date, "YYYYMMDD") & "_" & AusZelle & "_EXT-Var1" _
+ ".xml"
Set objStream = CreateObject("ADODB.Stream")
objStream.Open
objStream.Charset = "utf-8"
objStream.LineSeparator = -1  '(CRLF)
For Zeile = 0 To Bereich.Rows.Count - 1
For Spalte = 0 To Bereich.Columns.Count - 1
myTextLine = Bereich.Cells(1).Offset(Zeile, Spalte).Value & "  "
Debug.Print myTextLine
objStream.writetext myTextLine, 0
Next Spalte
objStream.writetext "", 1
Next Zeile
objStream.SaveToFile DateiName, 2 'adSaveCreateOverWrite
Set objStream = Nothing
End Sub

Anzeige
AW: Sheet-Inhalt in XML-Datei speichern
28.05.2020 20:45:42
Christian
Hallo peterk,
vielen Dank für Deine Hilfe, es hat super funktioniert und bringt uns im Geschäft produktiv auf jeden Fall ein paar Minuten Einsparung :-)
Viele Grüße
Christian
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige