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

Forumthread: Export Tabstopp-getrennt

Export Tabstopp-getrennt
08.09.2008 17:04:00
Bonnie
Hallo zusammen,
ich versuche seit Tagen aus einer Excel-Datei, von Blatt (2), die Spalten 1-7 in eine
eigene txt.-Datei, Tabstopp-getrennt zu exportieren.
Wenn ich das Makro aufzeichne, funktioniert es zwar, ist aber keine schöne Lösung :-))
Ich habe verschieden Lösungsansätze im Netz gefunden, keine funktioniert so richtig.
Die Beste war diese hier:

Sub XLS_nach_TXT_Export()
Dim Dateiname As String
Dim Zeile As Long
Dim Spalte As Integer
Dim GanzeZeile As String
Dim Trennzeichen As String
Dateiname = ThisWorkbook.Path & Application.PathSeparator& "Dienstplan.txt"
Zeile = 1
Spalte = 1
Trennzeichen = Chr(9) ' Chr(9) = Tabulator
Open Dateiname For Output As 1
For Zeile = 1 To ActiveSheet.UsedRange.Rows.count
' Alle benutzten Spalten der aktiven Tabelle werden durchlaufen
For Spalte = 1 To ActiveSheet.UsedRange.Columns.count
GanzeZeile = GanzeZeile & Trennzeichen & Cells(Zeile, Spalte).Value
Next Spalte
Print #1, GanzeZeile
GanzeZeile = ""
Next Zeile
Close #1
End Sub


Jedoch wird in der erzeugten txt.-Datei bei Spalte A ein Tab vorne an gestellt, so dass
die gesamte Textdatei am Anfang eine Leerspalte enthält....
Kann mir vielleicht jemand verraten warum?
Gruß
Bonnie

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Export Tabstopp-getrennt
08.09.2008 17:30:04
Luschi
Hallo Bonnie,
versuch es mal so:

If "" = GanzeZeile Then
GanzeZeile = Cells(Zeile, Spalte).Value
Else
GanzeZeile = GanzeZeile & Trennzeichen & Cells(Zeile, Spalte).Value
End If

Gruß von Luschi
aus klein-Paris

AW: Export Tabstopp-getrennt
08.09.2008 20:16:00
Erich
Hi Bonnie,
das würd ich so schreiben:

For Zeile = 1 To ActiveSheet.UsedRange.Rows.Count
' Alle benutzten Spalten der aktiven Tabelle werden durchlaufen
GanzeZeile = Cells(Zeile, 1).Value
For Spalte = 2 To ActiveSheet.UsedRange.Columns.Count
GanzeZeile = GanzeZeile & Trennzeichen & Cells(Zeile, Spalte).Value
Next Spalte
Print #1, GanzeZeile
GanzeZeile = ""
Next Zeile

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Export Tabstopp-getrennt
09.09.2008 08:22:00
Bonnie
@ Luschi
ich wusste nicht wohin mit Deinem Code :-)), trotzdem danke für die Antwort
@Erich
das funktioniert! ich habe nur noch bei Spalte auf 2 to 7 geändert (das Blatt enthält mehr Spalten als benötigt) und dann ging es.... Ich wüßte nur noch gerne warum ich bei Spalte 2 anfangen muss....
Vielen Dank für die Hilfe!
Gruß
Bonnie
Anzeige
AW: Export Tabstopp-getrennt
09.09.2008 08:51:00
Erich
Hallo Bonnie,
Spalte A (=1) wird doch schon erledigt durch die Zeile
GanzeZeile = Cells(Zeile, 1).Value
Dahinter werden dann Trennzeichen und Werte der Spalten 2 bis 7 geschrieben.
Drei Zeilen waren noch überflüssig:
Zeile = 1
Spalte = 1
GanzeZeile = ""
Damit würde ich das jetzt so schreiben:

Dateiname = ThisWorkbook.Path & "\Dienstplan.txt"
Trennzeichen = Chr(9) ' Chr(9) = Tabulator
Open Dateiname For Output As #1
For Zeile = 1 To ActiveSheet.UsedRange.Rows.Count
' Spalten 1 bis 7 der aktiven Tabelle werden durchlaufen
GanzeZeile = Cells(Zeile, 1).Value
For Spalte = 2 To 7
GanzeZeile = GanzeZeile & Trennzeichen & Cells(Zeile, Spalte).Value
Next Spalte
Print #1, GanzeZeile
Next Zeile
Close #1

Die Variable Trennzeichen ist auch überflüssig, stattdessen kannst du kürzer
GanzeZeile = GanzeZeile & Chr(9) & Cells(Zeile, Spalte).Value
schreiben.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Export Tabstopp-getrennt
10.09.2008 08:44:29
Bonnie
Hallo Erich,
Super! Jetzt versteh ich es auch :-))
Danke nochmal, meine Woche ist gerettet.
Gruß
Bonnie
;
Anzeige
Anzeige

Infobox / Tutorial

Export von Tabstopp-getrennten Daten aus Excel


Schritt-für-Schritt-Anleitung

Um Daten aus einer Excel-Datei in eine Tabstopp-getrennte Textdatei zu exportieren, folge diesen Schritten:

  1. Öffne Excel und lade die Arbeitsmappe, die die Daten enthält.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Füge den folgenden VBA-Code ein:

    Sub XLS_nach_TXT_Export()
        Dim Dateiname As String
        Dim Zeile As Long
        Dim Spalte As Integer
        Dim GanzeZeile As String
        Dim Trennzeichen As String
    
        Dateiname = ThisWorkbook.Path & Application.PathSeparator & "Dienstplan.txt"
        Trennzeichen = Chr(9) ' Chr(9) = Tabulator
        Open Dateiname For Output As #1
    
        For Zeile = 1 To ActiveSheet.UsedRange.Rows.Count
            GanzeZeile = Cells(Zeile, 1).Value
            For Spalte = 2 To 7
                GanzeZeile = GanzeZeile & Trennzeichen & Cells(Zeile, Spalte).Value
            Next Spalte
            Print #1, GanzeZeile
        Next Zeile
    
        Close #1
    End Sub
  5. Schließe den VBA-Editor und führe das Makro aus.


Häufige Fehler und Lösungen

  • Leere Spalte am Anfang: Wenn in der erzeugten Textdatei eine leere Spalte am Anfang angezeigt wird, stelle sicher, dass du die Variable GanzeZeile korrekt initialisierst. Beginne mit der ersten Zelle der Zeile, um das Problem zu vermeiden.

  • Makro funktioniert nicht: Überprüfe, ob in Excel Makros aktiviert sind. Gehe zu Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen und aktiviere die Option für Makros.


Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch die Funktion "Speichern unter" verwenden:

  1. Wähle im Menü Datei die Option Speichern unter.
  2. Wähle den Dateityp Text (Tabstopp-getrennt) (*.txt) aus.
  3. Klicke auf Speichern.

Dies speichert die gesamte Tabelle, jedoch kann es sein, dass du die Spalten manuell anpassen musst.


Praktische Beispiele

Wenn du nur bestimmte Spalten exportieren möchtest, kannst du den VBA-Code entsprechend anpassen. Beispielsweise, wenn du nur die Spalten 1 bis 3 exportieren willst, ändere die Schleife in:

For Spalte = 1 To 3

Dieser Code wird dann nur die ersten drei Spalten exportieren.


Tipps für Profis

  • Nutze die Chr(9)-Funktion für den Tabulator, um sicherzustellen, dass die Daten im gewünschten Format exportiert werden.
  • Überlege, ob du den Export in eine CSV-Datei (Comma-Separated Values) durchführen möchtest, falls dein Zielsystem dies unterstützt. Es gibt jedoch Unterschiede beim Speichern von csv und txt in Bezug auf Trennzeichen.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der exportierten Spalten anpassen? Du kannst die Schleife für die Spalten im VBA-Code anpassen, indem du die Werte in For Spalte = 2 To 7 änderst.

2. Was ist der Unterschied zwischen CSV und Tabstopp-getrenntem Export? CSV speichert Daten mit Kommas als Trennzeichen, während der Tabstopp-getrennte Export Tabs (Chr(9)) verwendet, was in vielen Fällen die Lesbarkeit verbessert, besonders bei Daten mit Kommas.

3. Kann ich den Export auch automatisieren? Ja, du kannst das Makro so anpassen, dass es bei bestimmten Ereignissen, wie dem Öffnen der Datei oder dem Ändern von Daten, automatisch ausgeführt wird.

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