Anzeige
Archiv - Navigation
604to608
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
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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
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
Vielen Dank für die Rückmeldung, gerne wieder (oT)
04.05.2005 17:08:16
Frank

325 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige