Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1104to1108
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Export zu .txt

Export zu .txt
Max
Guten Morgen,
ich habe geplant meine Tabelle um ein Makro zu erweitern. Ziel ist es nur bestimmte Bereiche zu exportieren welche dann mit einem blank getrennt in eine textdatei geschrieben werden.
Beispiel:
Ich makiere Zeile 5-9. Nun soll über den Button das Makro gestartet werden. Nun holt er sich von Zeile 5-9 den Inhalt aus Spalte C & D und trennt die Daten mit einem Blank! Der Speicherort sollte am besten vom Benutzer wählbar sein.
Ansicht:
Maus1 Maus2
Maus3 Maus4
Also pro reihe in der txt eine Zeile aus der Excel-Datei
Ich freue mich auf eure antworten ;)
lg
max
Beispiel zum Export zu .csv
30.09.2009 09:48:36
Worti
Hallo max,
ich hab mal sowas für csv-Dateien gebastelt. Ist aber leicht zum Export für TXT umzubauen:
'***********************************************************************************************
' Autor: Worti *
' Datum 23.05.2007 *
' Aufgabe: Exportiere vorgegebenen Bereich als CSV-Datei mit vorgebbarem Trennzeichen *
'***********************************************************************************************
Sub Exportiere_Bereich_in_CSV()
Dim bisZeile As Long, zeile As Long
Dim bisSpalte As Integer, Spalte As Integer
Dim Trennzeichen As String, ExportBereich As String, Ausgabe As String
Dim NewFileName
Close #1
NewFileName = Application.GetSaveAsFilename(fileFilter:="CSV Files (*.csv), *.csv")
If NewFileName  False Then
Open NewFileName For Output As #1
' Hier Trennzeichen eingeben
Trennzeichen = InputBox("Bitte geben Sie das gewünschte Trennzeichen ein: ", " _
Trennzeichen", ";")
If Trennzeichen = "" Then
'Standard-Trennzeichen Semikolon
Trennzeichen = ";"
End If
'Zu exportierender Bereich
ExportBereich = InputBox("Bitte den zu exportierenden bereich eingeben: ", "Bereich",  _
ActiveSheet.UsedRange.Address(False, False))
If ExportBereich = "" Then
'Wenn leer, dann benutzten Bereich exportieren
ExportBereich = ActiveSheet.UsedRange.Address
End If
bisZeile = ActiveSheet.Range(ExportBereich).Rows.Count + ActiveSheet.Range(ExportBereich) _
.Row - 1
bisSpalte = ActiveSheet.Range(ExportBereich).Columns.Count + ActiveSheet.Range( _
ExportBereich).Column - 1
For zeile = ActiveSheet.Range(ExportBereich).Row To bisZeile
Ausgabe = ""
For Spalte = ActiveSheet.Range(ExportBereich).Column To bisSpalte
Ausgabe = Ausgabe & ActiveSheet.Cells(zeile, Spalte).Value
If Spalte  bisSpalte Then
Ausgabe = Ausgabe & Trennzeichen
End If
Next Spalte
Print #1, Ausgabe
Next zeile
Close #1
End If
End 

Sub
Grüß Worti

Anzeige
AW: Beispiel zum Export zu .csv
30.09.2009 09:55:05
Max
Er gibt mir hier einen Syntaxfehler:
Trennzeichen = InputBox("Bitte geben Sie das gewünschte Trennzeichen ein: " " _
Trennzeichen", " ")
wegen dem _?!
Expotiert er mir denn dann auch die Inhalte aus Spalte C & D der jeweiligen Zeile?
Hab nun einfach oben alles von csv in txt geändert hoffe das klappt dann so :)
Danke soweit
lg
max
AW: Beispiel zum Export zu .csv
30.09.2009 10:17:11
Max
Sorry für den Doppelpost ABBBER
Folgende Probleme:
1. der Dateibrowser zum auswählen des Speicherorts übernimmt immer den aktuellen Dateinamen. Er sollte aber nicht xls sondern txt dahinter haben
2. Auswahl der Bereiche funktioniert...Aber leider ist es ein Problem wenn ich nach einem Bereich filter und dann exportieren möchte. Die Auswahl sollte wie im ersten Post beschrieben funktionieren. Zeilen auswählen und Spalteneintrag C&D der markierten Zeile exportieren
lg und danke bisher
max
Anzeige
AW: Beispiel zum Export zu .csv
30.09.2009 11:08:08
Worti
Hallo max,
ich hab ja nicht gesagt, dass du den Code einfach so übernehmen kannst, sonder das er auf dein Problem wohl abenderbar wäre. Und von gefiltertem Arbeitsblatt war auch nicht die Rede.
Hier jetzt ein Code, der Filterung berücksichtigt.
Sub Exportiere_Selektiereten_Bereich_in_TXT()
Dim bisZeile As Long, zeile As Long
Dim ExportBereich As String, Ausgabe As String
Dim NewFileName
Close #1
NewFileName = Application.GetSaveAsFilename(fileFilter:="TXT Files (*.txt), *.txt")
If NewFileName  False Then
Open NewFileName For Output As #1
'Zu exportierender Bereich
ExportBereich = Selection.Address
bisZeile = ActiveSheet.Range(ExportBereich).Rows.Count + ActiveSheet.Range(ExportBereich) _
.Row - 1
For zeile = ActiveSheet.Range(ExportBereich).Row To bisZeile
Ausgabe = ""
If Rows(zeile).Hidden = False Then
Ausgabe = ActiveSheet.Cells(zeile, 3).Value & " " & ActiveSheet.Cells(zeile, 4). _
Value
Print #1, Ausgabe
End If
Next zeile
Close #1
End If
End Sub

Funktioniert es jetzt?
Gruß Worti
Anzeige
AW: Beispiel zum Export zu .csv
30.09.2009 11:16:48
Max
Worti du bist ein Engel :D
Nein ein gott ;)
danke vielmals.
AW: Beispiel zum Export zu .csv
30.09.2009 11:16:59
Herbert
@worti: es tut mir wirklich sehr leid für deinen geliebten S04, aber heute abend gibts eins auf die mütze! warum? tja, meine löwen werden sie das fürchten, sprich verlieren, lehren! bitte sag auch dieter mein herzliches beileid! ;o)=)
Ich bin doch kein blauer
30.09.2009 11:25:02
Worti
Moin herbert,
du verwechselt mich mit meinem Schwager. Der hat dir am Wochenende wohl zu sehr zugesabbert. Ich geh seit Ende der 60ziger durch dick und dünn mit der einzig wahren Borussia (und damit mein ich nicht die Zecken)
Gruß Worti
AW: Ich bin doch kein blauer
30.09.2009 11:32:05
Herbert
sorry, da hab ich was durcheinander gebracht! aber sag dieter trotzdem mein mitgefühl! *ggg*
Anzeige
AW: Fehler
30.09.2009 11:35:01
Max
Hallo Worti,
auch wenn ich Dortmundfan bin ;) möchte ich noch eine kleine Verbesserung einbringen.
Wenn ich die Zeilen 4,6,8 markiere nimmt er nur Zeile 4.. bei 4,5,6,7,8 nimmt er alle
kannst du das ändern?
lg
max
@Herbert : Glaskugel oder Zukunfts-TV ?
30.09.2009 11:40:38
NoNet
Moin Herbert,
aber heute abend gibts eins auf die mütze! 
Wieso denn heute Abend ? M.E. spielen die beidne doch erst in 4 Wochen gegeneinander im DFB-Pokal :
http://www.dfb.de/index.php?id=503058&action=showDay&lang=D&liga=dfbpokm&saison=09&saisonl=2009&spieltag=3&cHash=80e8a838e4
Oder weißt Du da mehr ?
Greeetz, NoNet
PS: Die Blauen gegen die Blauen - klaro, dass da die Blauen gewinnen ;-)
-
Anzeige
AW: bitte erst mein Problem!
30.09.2009 11:45:26
Max
sry aber muss das sein hier?
...wenn mein Problem behoben ist kann man sich gerne darüber unterhalten
Ansonsten gilt:
BVB 09
AW: bitte erst mein Problem!
30.09.2009 11:53:08
Herbert
sorry, du hast recht, erst sein problem lösen!
Ja, Dein Problem zuerst : AddIn-Lösung ?
30.09.2009 12:04:25
NoNet
Moin Max,
sorry, dass wir Deinen Thread zum Sinnieren über Blau und Blau misbraucht haben ;-)
Falls Du auch eine fertige AddIn-Lösung akzeptierst, dann schau Dir doch mal folgenden Beitrag von mir aus dem Spotlight-Forum an:
http://spotlight-wissen.de/lisp/pages/messages/amse-1170077345-9209
Gruß, NoNet
Anzeige
AW: Ja, Dein Problem zuerst : AddIn-Lösung ?
30.09.2009 12:34:08
Max
;) Danke NoNet
aber diese lösung is nicht so nach meinem plan. Wäre gut wenn die bisherige lösung geändert wird :)
lg
max
AW: @Herbert : Glaskugel oder Zukunfts-TV ?
30.09.2009 11:48:13
Herbert
jetzt er nu wieder!!! besserwessi!!! also gut, dann spielen die halt erst in 4 wochen!!! aber das mit der mütze bleibt! ;o)=)
die logo's sind super!
servus

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige