Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Export in Tab delim txt ohne überflüssige Tabs

Export in Tab delim txt ohne überflüssige Tabs
13.10.2008 04:13:43
Dirk
Hallo Excelgemeinde,
ich habe eine ziemlich umfangreiche txt, die ich in Excel in 2 Tabellen (aufgrund der Zeilenlimitation) einlese und bearbeite. Nun möchte ich sie gene wieder aus Excel in eine Tab delim txt exportieren, wobei mich zur weiteren Bearbeitung aber zusätzliche Tabs am Ende einer Zeile stören. Das Problem ist nur das meine Zeilen unterschiedlich lang sind und alles was ich hier gefunden habe mit used Range Rows und Columns arbeiet. Habt Ihr eine Idee wie man das individuell für jede Zeile festlegen kann? Ich habe mal eine (gekürzte) Datei als Beispiel hochgeladen.
https://www.herber.de/bbs/user/55978.xls
Danke im Voraus
Gruß Dirk
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Export in Tab delim txt ohne überflüssige Tabs
13.10.2008 10:40:45
Armin
Hallo Dirk,
die Beispielmappe enthält ja eigentlich in sich wirdersprüchliche Zeilen. Einmal ist die Spaltenüberschrift oben Zeile 1 und dann auf einmal in Spalte 1 (A). Ab Zeile 254 und dann ab Zeile 263 wie gehabt.
Also dazu müsstest Du noch mal was schreiben.
Ich kann ich mir nur vorstellen die Ausgabe mit VBA zu realisieren. Was benutzt Du als Speratorzeichen? (Tabulator oder)?
Gruß
Armin
Anzeige
AW: Export in Tab delim txt ohne überflüssige Tabs
13.10.2008 14:46:00
Yal
Hallo Dirk,
@Armin: ich nehme an, Dirk hat das Inhalt von 3 vers. Tabelle in einer zusammengefasst.
Ohne das Problem gezielt einzugehen, nur ein Tipp:
"in 2 Tabellen auf Grund der Zeilenlimitation" (--> also mehr als 65536 Zielen!): in meinen Horen schreit es ganz laut für Access anstatt Excel.
Das Verfahren Importieren-Bearbeiten-Exportieren, auch ETL "Extract-Transform-Load" benannt, ist selten mit Excel besser bedient als mit einer relationale Datenbank.
u.a. weil mit Access Du das Problem der Spaltenauswahl nicht hast: das wird durch eine Abfrage gelöst.
Viel Erfolg
Yal
Anzeige
AW: Export in Tab delim txt ohne überflüssige Tabs
13.10.2008 22:33:00
Dirk
Danke für Eure Hilfe.
@ Armin
An der Mappe kann ich nichts ändern. Die wird von einem Auswerteprogramm so ausgegeben und soll danach auch so wieder eingelesen werden, nachdem ich die Werte in der Spalte "Well" werändert habe (in dem Beisp. also die 205 und 382). Ich habe an der Tabelle nichts verändert, außer dass ich sie um ca. 90.000 Zeilen verkürzt habe. Als Trennzeichen wird Tabulator verwendet. Dass ich die Ausgabe mit VBA lösen muss habe ich mir schon fast gedacht. Mir kommt es in diesem Fall auch nicht auf ein paar Minuten Rechenzeit an, die Hauptsache ist, dass ich die überflüssigen Tabulatorzeichen weg bekomme .
@ Yal
Das mit Acess mag eine gute Idee sein, mein Problem ist nur, dass ich schon viel Zeit und Mühe in das Makro zur Bearbeitung gesteckt habe, ich um die Spalte "Well" zu ändern Rechnen muss und ich außerdem von Acess noch weit weniger Ahnung habe als von Excel. Genaugenommen beschränken sich meine Kenntnisse auf: "Ja das gibt es."
Grüße Dirk
Anzeige
AW: Export in Tab delim txt ohne überflüssige Tabs
15.10.2008 13:44:12
fcs
Hallo Dirk,
das folgende Makro exportiert die Daten aus den ersten beiden Tabellen der Arbeitsmappe zeilenweise in eine Textdatei.
Du muss prüfen, ob für deine Zwecke die Value oder die Text-Eigenschaft der Zellen in die Textdatei geschrieben werden soll und den Code ggf. anpassen.
Gruß
Franz

Sub Text_Export()
'Daten in ersten beiden Tabellen der aktiven Arbeitsmappe in eine Textdatei schreiben
Dim wbActive As Workbook, intI As Integer
Dim varDatei, wks As Worksheet, start As Date
Dim lngZeileLast As Long, lngSpalteMax As Long
Dim lngZeile As Long, intFF As Integer, strText As String
Dim lngSpalte As Long
Const strSep = vbTab 'Trennzeichen zwischen Daten-Spalten
On Error GoTo Fehler
varDatei = Application.GetSaveAsFilename(InitialFileName:="TestExport.txt", _
Filefilter:="Text(*.txt), *.txt", _
Title:="Bitte Namen für Export-Datei wählen oder eingeben und speichern")
If varDatei  False Then
start = Now
Set wbActive = ActiveWorkbook
intFF = FreeFile()
Open varDatei For Output As #intFF
For intI = 1 To 2 'Tabellenblatter 1 und 2 abarbeiten
Set wks = wbActive.Worksheets(intI)
With wks
'Letzte Zeile in Blatt ermitteln
lngZeileLast = .UsedRange.Row + .UsedRange.Rows.Count - 1
'Zeilen der Tabelle einlesen
For lngZeile = 1 To lngZeileLast
If lngZeile Mod 500 = 1 Then
Application.StatusBar = wks.Name & " Zeile " & lngZeile & " von " & lngZeileLast
End If
'Letzte Spalte in Zeile ermitteln
lngSpalteMax = .Cells(lngZeile, .Columns.Count).End(xlToLeft).Column
'Wert aus 1. Spalte einlesen
strText = .Cells(lngZeile, 1).Value ' ggf. Text-Eigenschaft
'Werte aus Spalten für Schritte einlesen
For lngSpalte = 2 To lngSpalteMax
strText = strText & strSep & .Cells(lngZeile, lngSpalte).Value 'ggf. Text-Eigenschaft
Next
Print #intFF, strText
Next
End With
Next
Close #intFF
MsgBox "Fertig" & vbLf & "Dauer: " & Format(Now - start, "hh:mm:ss")
End If
Fehler:
If Err.Number  0 Then
Select Case Err.Number
Case 999 '
Case Else
MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
End Select
End If
Application.StatusBar = False
End Sub


Anzeige
Danke! Werd´s versuchen. oT
16.10.2008 10:42:00
Dirk
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Export von Excel in eine Tab-delimited TXT-Datei ohne überflüssige Tabs


Schritt-für-Schritt-Anleitung

Um Deine Daten aus Excel in eine Tab-delimited TXT-Datei zu exportieren, ohne überflüssige Tabs am Ende der Zeilen, kannst Du das folgende VBA-Makro nutzen. Dieses Makro exportiert die Daten aus den ersten beiden Tabellen der Arbeitsmappe:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden Code in das Modul:
Sub Text_Export()
    'Daten in den ersten beiden Tabellen der aktiven Arbeitsmappe in eine Textdatei schreiben
    Dim wbActive As Workbook, intI As Integer
    Dim varDatei, wks As Worksheet, start As Date
    Dim lngZeileLast As Long, lngSpalteMax As Long
    Dim lngZeile As Long, intFF As Integer, strText As String
    Dim lngSpalte As Long
    Const strSep = vbTab 'Trennzeichen zwischen Daten-Spalten
    On Error GoTo Fehler
    varDatei = Application.GetSaveAsFilename(InitialFileName:="TestExport.txt", _
    Filefilter:="Text(*.txt), *.txt", _
    Title:="Bitte Namen für Export-Datei wählen oder eingeben und speichern")

    If varDatei <> False Then
        start = Now
        Set wbActive = ActiveWorkbook
        intFF = FreeFile()
        Open varDatei For Output As #intFF

        For intI = 1 To 2 'Tabellenblätter 1 und 2 abarbeiten
            Set wks = wbActive.Worksheets(intI)
            With wks
                'Letzte Zeile in Blatt ermitteln
                lngZeileLast = .UsedRange.Row + .UsedRange.Rows.Count - 1

                'Zeilen der Tabelle einlesen
                For lngZeile = 1 To lngZeileLast
                    'Letzte Spalte in Zeile ermitteln
                    lngSpalteMax = .Cells(lngZeile, .Columns.Count).End(xlToLeft).Column

                    'Wert aus 1. Spalte einlesen
                    strText = .Cells(lngZeile, 1).Value ' ggf. Text-Eigenschaft

                    'Werte aus Spalten für Schritte einlesen
                    For lngSpalte = 2 To lngSpalteMax
                        strText = strText & strSep & .Cells(lngZeile, lngSpalte).Value 'ggf. Text-Eigenschaft
                    Next
                    Print #intFF, strText
                Next
            End With
        Next
        Close #intFF
        MsgBox "Fertig" & vbLf & "Dauer: " & Format(Now - start, "hh:mm:ss")
    End If

Fehler:
    If Err.Number <> 0 Then
        Select Case Err.Number
        Case 999
        Case Else
            MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
        End Select
    End If
    Application.StatusBar = False
End Sub
  1. Schließe den VBA-Editor und gehe zurück zu Excel.
  2. Drücke ALT + F8, wähle Text_Export und klicke auf Ausführen.

Dieses Makro exportiert die Daten in eine TXT-Datei, wobei als Trennzeichen der Tabulator verwendet wird.


Häufige Fehler und Lösungen

  • Problem: Überflüssige Tabs am Ende der Zeilen.

    • Lösung: Stelle sicher, dass Du den Code so anpasst, dass nur tatsächliche Datenwerte exportiert werden.
  • Problem: Datei wird nicht gespeichert.

    • Lösung: Überprüfe, ob Du beim Speichern einen gültigen Dateinamen vergibst und das richtige Dateiformat auswählst.

Alternative Methoden

Eine alternative Methode ist die Verwendung von Access, insbesondere wenn Du mit sehr großen Datenmengen arbeitest. Access kann die Daten effizienter verwalten und bietet mehr Möglichkeiten zur Datenbearbeitung. Der Prozess wäre ähnlich: Daten importieren, bearbeiten und dann exportieren.


Praktische Beispiele

Wenn Du eine Excel-Datei mit mehreren Tabellen hast und nur bestimmte Daten exportieren möchtest, kannst Du das VBA-Makro entsprechend anpassen. Füge Bedingungen hinzu, um nur bestimmte Spalten oder Zeilen zu exportieren, basierend auf Deinen Anforderungen.


Tipps für Profis

  • Nutze die Text-Eigenschaft der Zellen, wenn Du sicherstellen möchtest, dass die Formatierung der Daten beim Export beibehalten wird.
  • Experimentiere mit dem strSep, um andere Trennzeichen zu verwenden, falls Du nicht nur Tabulatoren benötigst.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um nur bestimmte Spalten zu exportieren? Du kannst die Schleife, die die Spalten durchläuft, anpassen und nur die gewünschten Spalten einfügen.

2. Funktioniert dieses Makro in allen Excel-Versionen? Das Makro sollte in den meisten modernen Excel-Versionen funktionieren, die VBA unterstützen, wie Excel 2010 und später.

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