Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
852to856
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
852to856
852to856
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel als Textdatei ausgeben, aber ohne Leerzeilen

Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 09:52:00
Wolfgang
Ich möchte ein Arbeitsblatt in eine Textdatei ausgeben, aber nur Zeilen mit Inhalt.
Beispiel:
Zeile 1: abcde 12 456
Zeile 2: defg 98 563
Zeile 3:
Zeile 4: hemc 75 552
Zeile 5:
Zeile 6: ldef 77 664
Zeile 7:
Zeile 8:
usw.
soll in der Textdatei dann wie folgt aussehen (also Zeile 3 + 5 sollen nicht mit ausgegeben werden, ebenfalls nicht alle Leerzeilen am Ende:
abcde 12 456
defg 98 563
hemc 75 552
ldef 77 664
Welcher VBA Code könnte das ?

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 10:27:40
IngGi
Hallo Wolfgang,
stehen die Daten komplett in Spalte A oder müssen auch andere Spalten beachtet werden. Bei mehreren Spalten: Sollen diese einfach hintereinander gehängt oder mit Trennzeichen (welches?) versehen werden?
Gruß Ingolf
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 10:34:00
Wolfgang
Die Daten stehen alle in Spalte A (von Zeile 1 bis max. 500)
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 10:54:20
IngGi
Hallo Wolfgang,
die Datei C:\Test.txt wird automatisch erzeugt, wenn es sie nicht schon gibt. Wenn sie bereits existiert wird sie ohne Vorwarnung überschrieben! Es wird immer das gerade aktive Tabellenblatt gespeichert.
Sub DatenInTXT()
Dim ff As Byte
Dim rng As Range
ff = FreeFile
Open "C:\Test.txt" For Output As #ff 'Dateiname und Pfad anpassen
For Each rng In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If rng <> "" Then
Print #ff, rng
End If
Next 'rng
Close #ff
End Sub
Gruß Ingolf
Anzeige
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 11:29:00
Wolfgang
super!! Vielen Dank. Jetzt muss ich nur noch herausfinden, ob es eine Möglichkeit gibt, den Dateinamen eingeben zu lassen (z.B. als Eingabe in einer Zelle B1 = "Datei_123"
Aber ansonsten ist es bereits super !
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 12:23:00
IngGi
Hallo Wolfgang,
das geht auch bequemer:
Sub DatenInTXT()
Dim ff As Byte
Dim rng As Range
Dim DatName As String
DatName = Application.GetOpenFilename
If DatName = "Falsch" Then Exit Sub
ff = FreeFile
Open "C:\Test.txt" For Output As #ff 'Dateiname und Pfad anpassen
For Each rng In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If rng <> "" Then
Print #ff, rng
End If
Next 'rng
Close #ff
End Sub
Gruß Ingolf
Anzeige
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 14:31:14
Wolfgang
Hallo,
klappt irgendwie nicht..... würde dir ja gerne meine Excel-Datei schicken, aber das Hochladen funktioniert leider auch nicht..... kann Seite nicht finden (Server Error). Hast due eine email-Adresse an die ich die Datei schicken kann?
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 14:40:32
IngGi
Hallo Wolfgang,
ich Dussel hab noch ne Anpassung vergessen:
Sub DatenInTXT()
Dim ff As Byte
Dim rng As Range
Dim DatName As String
DatName = Application.GetOpenFilename
If DatName = "Falsch" Then Exit Sub
ff = FreeFile
Open DatName For Output As #ff 'Dateiname und Pfad anpassen
For Each rng In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If rng <> "" Then
Print #ff, rng
End If
Next 'rng
Close #ff
End Sub
Gruß Ingolf
Anzeige
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 14:57:47
Wolfgang
... es klappt leider immer noch nicht. Hier noch ein paar mehr Details ( aber daran sollte es ja nicht liegen )
Die ExcelDatei besteht aus zwei Arbeitsblättern ( Input + Textfile ). Unter Input gebe ich die Daten in Zeilen und Spalten ein. Unter Textfile habe ich dann alles durch Verketten usw. in Spalte A zusammengefasst.
Bei deinem Makro habe ich dann entsprechend zwei Zeilen hinzugefügt:
Sub DatenInTXT()
Dim ff As Byte
Dim rng As Range
Dim DatName As String
DatName = Application.GetOpenFilename
If DatName = "Falsch" Then Exit Sub
ff = FreeFile
Open DatName For Output As #ff 'Dateiname und Pfad anpassen
Sheets("Textfile").Select
For Each rng In Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
If rng <> "" Then
Print #ff, rng
End If
Next 'rng
Close #ff
Sheets("Input").Select
End Sub

Beim Aufruf des Makros bekomme ich zwar das Fenster "Datei speichern unter", aber es passiert weiter nichts.
Ach wie schön es doch wäre, würde ich VBA verstehen..... schluchz!
Anzeige
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 15:28:00
IngGi
Hallo Wolfgang,
zwei mögliche Fehlerquellen:
1. Wenn du die bisherige Version des Makros in das Modul des Tabellenblattes "Input" gestellt hast, hat sich das Makro nicht auf das aktive Tabellenblatt, also "Textfile" bezogen, sondern auf "Input". Folgende Version umgeht dieses Problem. Hinter "GetOpenFileName" habe ich außerdem noch einen Dateifilter ergänzt, der dafür sorgt, dass im Auswahlfenster nur Textdateien (Endung .txt) angezeigt werden.
2. Im Dateiauswahlfenster musst du den gewünschten Dateinamen händisch in das Feld "Dateiname:" eintragen. Wenn es die Datei bereits gibt, kannst du diese alternativ per Doppelklick auswählen. Es genügt allerdings nicht, im Auswahlfenster nur bis zu dem gewünschten Ordner zu browsen und dann, wenn in diesem Ordner nur eine Datei steht, nur auf "Öffnen" zu klicken. Dadurch würde keine Datei ausgewählt werden und das Makro würde abbrechen.
Sub DatenInTXT()
Dim ff As Byte
Dim rng As Range
Dim DatName As String
DatName = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If DatName = "Falsch" Then Exit Sub
ff = FreeFile
Open DatName For Output As #ff
With Sheets("Textfile")
For Each rng In .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
If rng <> "" Then
Print #ff, rng
End If
Next 'rng
End With
Close #ff
End Sub
Gruß Ingolf
Anzeige
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 15:46:00
Wolfgang
leider klappt es immer noch nicht. Auch bei händischer Eingabe wird keine Datei erstellt. Nur wenn bereits eine Datei mit diesem Namen vorhanden ist (entweder bei Doppelklick oder händischer Eingabe) wird korrekt ausgegeben. Ich würde aber gerne neue Dateien erstellen/ausgeben lassen.
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 16:36:32
IngGi
Hallo Wolfgang,
ich könnte mich ohrfeigen. "GetOpenFilename" ist natürlich der falsche Dialog. "GetSaveAsFilename" muss das heißen. Mit einer nicht vorhandenen Datei hab ich das gar nicht getestet. In der Zeile habe ich mit "C:\heinz" bereits einen Zielordner und einen Dateinamen vorgegeben. Beides kann im Dialog natürlich geändert werden. Wenn du "heinz" rauslöschst, wird nur der Zielordner vorgegeben und das Feld "Dateiname" bleibt leer. Auch den Ordner musst du nicht unbedingt vorgeben. Wenn du "C:\heinz" und das folgende Komma löschst, wird einfach der aktuelle Ordner von Excel vorgegeben.
Sub DatenInTXT()
Dim ff As Byte
Dim rng As Range
Dim DatName As String
DatName = Application.GetSaveAsFilename("C:\heinz", "Text Files (*.txt), *.txt")
If DatName = "Falsch" Then Exit Sub
ff = FreeFile
Open DatName For Output As #ff
With Sheets("Textfile")
For Each rng In .Range("A1:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
If rng <> "" Then
Print #ff, rng
End If
Next 'rng
End With
Close #ff
End Sub
Gruß Ingolf
Anzeige
AW: Excel als Textdatei ausgeben, aber ohne Leerzeilen
09.03.2007 17:38:00
Wolfgang
super !! jetzt klappt alles.....
Tausend Dank !

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige