Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1760to1764
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige