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

Forumthread: Tabellenblatt als Textdatei abspeichern

Tabellenblatt als Textdatei abspeichern
04.05.2005 09:51:51
Helmut
Hallo liebe Forenmitglieder,
ich hätte eine dringende Anfrage, und da ich kaum VBA-Kenntnisse habe, hoffe ich, dass mir wer von euch helfen kann.
Ich habe ein Excel-Worksheet "geometer.xls" mit mehreren Tabellenblättern (4).
Das erste Tabellenblatt heißt so wie das Excel-File, also "geometer".
Nun möchte ich mittels VBA-Script über einen Button-Klick z.B. das Tabellenblatt mit dem Namen "Material" als Textfile abspeichern!
Danach sollte eben ein Textfile mit dem Namen "Material.txt" existieren.
Wunschresultat:
https://www.herber.de/bbs/user/22140.txt
Das will ich auch für die anderen Tabellenblätter des Worksheets machen.
Danach sollen die Tabellenblätter zu xml-Files umbenannt werden (rename?)
Bitte um genaue Scriptangabe, weil ich kaum VBA-Kenntnisse habe.
ZUSATZINFO zum Aufbau eines solchen Tabellenblattes:
Im Tabellenblatt befinden sich wie auch bei Webseiten links und rechts der Daten sogenannte TAG's. Also in Spalte A ein TAG, in Spalte B ein Datensatz und in Spalte C wieder ein TAG. Und das alles zeilenweise.
Beispiel:

Die Datei https://www.herber.de/bbs/user/22138.xls wurde aus Datenschutzgründen gelöscht

Zusätzlich noch eine Frage!
Ich benötige im Endeffekt ein xml-File, das keine Zwischenräume zwischen den TAG's und Datensätzen hat!
Der Versuch, das Excel-File direkt als xml-File abzuspeichern bringt nichts, weil ich diese Struktur mit den TAG's benötige. Diese schreibe ich eben 1x in ein Tabellenblatt und wenn ich als Textfile speichere, habe ich genau diese Struktur.
Leider aber mit Abständen zwischen den TAG'S und Datensätzen beim Abspeichern als Textfile. Hat hier jemand eine Idee?
Danke euch im Voraus!
Ciao, Helmut
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabellenblatt als Textdatei abspeichern
04.05.2005 10:43:22
Frank
Hallo Helmut,
kopiere folgende Prozedure in Deine Arbeitsmappe:
Option Explicit

Sub sExport()
' Verweis auf "Windows Script Host Object Model " setzen!
Dim fso As FileSystemObject
Dim strDateiname As String
Dim strZeile As String
Dim f As Object
Dim ws As Worksheet
Dim lngRow  As Long
Set ws = ActiveSheet
strDateiname = ActiveWorkbook.Path & "\" & ws.Name & ".xml"
If Len(Dir(strDateiname)) > 0 Then
' Ausbaufähig!
MsgBox "Die Datei """ & strDateiname & """ existiert bereits!", vbExclamation
Else
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.CreateTextFile(strDateiname, True)
f.WriteLine ("<?xml version=""1.0""?>")
f.WriteLine ("<" & ws.Name & ">")
With ws
For lngRow = 1 To .UsedRange.Rows.Count
strZeile = .Range("A" & lngRow) & .Range("B" & lngRow) & .Range("C" & lngRow)
If Len(strZeile) > 0 Then
f.WriteLine (" " & strZeile)
End If
Next
End With
f.WriteLine ("</" & ws.Name & ">")
f.Close
Set f = Nothing
Set fso = Nothing
End If
End Sub

Viel Erfolg
Frank.
Anzeige
AW: Tabellenblatt als Textdatei abspeichern
04.05.2005 11:00:56
Helmut
Hallo Frank,
danke mal vorerst, aber:
Was verstehst du unter
"Verweis auf "Windows Script Host Object Model " setzen!"
und
ich bekomme schon bei der Zeile
"Dim fso As FileSystemObject"
eine Fehlermeldung beim Kompilieren: "Benutzerdefinierter Typ nicht definiert"
Komme also gar nicht weiter. Weißt du was ich das tun muss?
Danke und ciao,
Helmut
Anzeige
AW: Tabellenblatt als Textdatei abspeichern
04.05.2005 11:50:07
Frank
Hallo Helmut,
Deine Frage und Deine Fehlermeldung hängen zusammen! Wenn Du keinen Verweis setzt, kommt in der Zeile "Dim fso As FileSystemObject" die Fehlermeldung, weil VBA ein Objekt mit dem Namen "FileSystemObject" nicht kennt.
Klicke in der Entwicklungsumgebung unter dem Menüpunkt "Extras" "Verweise" an. Dann erhälst Du eine lange (teilweise unsortierte!) Liste mit Verweisen. Suche dort "Windows Script Host Object Model" und setze ein Haken davor. Dann sollte es klappen.
Viel Erfolg
Frank.
Anzeige
AW: Tabellenblatt als Textdatei abspeichern
04.05.2005 13:07:20
Helmut
Hallo Frank,
danke, das Abspeichern als xml-Datei funktioniert nun, nachdem ich den Verweis gesetzt habe.
Das Ergebnis der xml-Datei sieht auch sehr gut aus. Werde weitertesten!
Du hast mir sehr geholfen und bist ein HIT!
Danke nochmals!
Ciao, Helmut
AW: Tabellenblatt als Textdatei abspeichern
04.05.2005 13:19:10
Helmut
Hallo Frank,
doch noch eine Frage:
Was muß ich genau angeben, wenn ich die xml-Datei z.B. in das Verzeichnis
E:\Test
schreiben möchte und nicht ins selbe Verzeichnis, wo die Excel-Datei steht?
Und:
Wozu steht eigentlich die Anweisung
f.WriteLine ("" & wsm.name & ">")
die du mit übermittelt hast. Ich sehe zwar im Ergebnis, dass das wie ein Block aussieht, aber wozu ist der gut?
Danke
Ciao, Helmut
Anzeige
AW: Tabellenblatt als Textdatei abspeichern
04.05.2005 15:31:45
Frank
Hallo Helmut,
zunächst vielen dank für Dein Lob!
In folgender Zeile kannst Du den Pfad anpassen:
Original:
strDateiname = ActiveWorkbook.Path & "\" & ws.Name & ".xml"
Dein Wunsch:
strDateiname = "E:\Test\" & ws.Name & ".xml"
Den Pfad kannst Du beliebig anpassen. Man könnte diesen zwar auch abfragen, aber ich wollte die Lösung nicht überladen.
Der Befehl "f.WriteLine(...)" schreibt in die zuvor erstellte Datei den in der Klammer stehen Text inklusive einem Enter (Zelenschaltung, Return oder wie auch immer Du das nennst).
Die Befehle "f.WriteLine(...)" außerhalb der For-Next-Schleife sollen die XML-Datei lesbarer machen.
Viel Erfolg
Frank.
Anzeige
AW: Tabellenblatt als Textdatei abspeichern
04.05.2005 16:41:36
Helmut
Hallo Frank,
herzlichen Dank nochmals. Es funktioniert so! Ich arbeite noch weiter an dem Projekt und hoffe, dass ich vielleicht wieder mal Hilfe von dir anfordern darf, wenn ich wo total anstehe. Wie gesagt, bin total "frisch" auf dem Gebiet. Muß dann halt Glück haben wieder dich zu erwischen; habe den Eindruck, dass du hier sehr kompetent bist.
Schönen Abend noch,
ciao Helmut
Anzeige
Vielen Dank für die Rückmeldung, gerne wieder (oT)
04.05.2005 17:08:16
Frank
;

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