Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
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
Inhaltsverzeichnis

Zahlreise TSV-Dateien in eine XLSX

Zahlreise TSV-Dateien in eine XLSX
21.11.2020 16:47:51
Jubel
Hallo Leute!
Ich habe einen Haufen TSV-Dateien (ca. 900) in einem Verzeichnis, die ich nun alle als einzelne Arbeitsblätter in einer XLSX-Arbeitsmappe zusammenfügen möchte. Die TSV-Dateien haben eine Struktur, die mit Tabs getrennt ist, sie können also sauber in Spalten angezeigt werden, wenn ich sie einzeln in Excel einlese. Bei 900+ dauert das jedoch ewig, daher möchte ich das als Makro machen.
Als Bonus: Ich würde gerne, dass der Name der jeweiligen TSV-Datei auch der Name des jeweiligen Arbeitsblattes ist.
Also im Grunde zwei Schritte:
1.) 900+ TSV Dateien in Excel als einzelne Arbeitsblätter einlesen und die Inhalte je Arbeitsblatt in Spalten darstellen (Tab als Trennzeichen).
2.) Jedes der Arbeitsblätter wie den Dateinamen der TSV-Datei benennen.
Hat jemand dafür einen Makro-Code, den ich nutzen könnte?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahlreise TSV-Dateien in eine XLSX
21.11.2020 17:53:30
Günther
Moin,
mit deiner Version geht das sehr schön über Daten | Abrufen und transformieren. Wenn ich aber lese, dass du 900+ Tabellenblätter erstellen willst, dann habe ich absolut NULL Bock, irgendwelche Unterstützung zu leisten. Gleichartige Daten gehören in 1 Tabelle. Punkt.
Ansonsten wirst du fündig, wenn du einmal nach CSV oder TXT zum Importieren suchst.
 
Gruß
Günther  |  mein Excel-Blog
AW: Zahlreise TSV-Dateien in eine XLSX
21.11.2020 18:39:43
Jubel
Hallo Günther,
danke für die Antwort.
Die Sachen, die ich bisher gefunden habe, halfen mir allerdings nicht wirklich weiter. Daher fragte ich hier ja noch mal.
Wenn ich aber lese, dass du 900+ Tabellenblätter erstellen willst, dann habe ich absolut NULL Bock, irgendwelche Unterstützung zu leisten.

Steile Ansage, ohne zu wissen, worum es geht. Aber immerhin reichte dein Bock für eine Antwort. Sehr nett, vielen Dank!
Gleichartige Daten gehören in 1 Tabelle. Punkt.

Wer hat etwas von gleichartigen Daten gesagt? Fragezeichen.
mit deiner Version geht das sehr schön über Daten Abrufen und transformieren.

Hm, das klingt interessant. Aber ich will wie gesagt nicht alle Daten in einem Arbeitsblatt (das geht auch gar nicht, weil die Tabellen grundverschiedene Spalten haben). Also kein "Konsolidieren". Und soweit ich das bisher weiß, kann man über Daten -> Externe Daten abrufen leider immer nur eine Datei einzeln anwählen und einfügen. Das wäre dann eben sehr, sehr zeitaufwändig. Daher die Frage nach einem Makro.
Anzeige
AW: Zahlreise TSV-Dateien in eine XLSX
21.11.2020 20:00:38
Jubel
Hallo,
falls mal jemand etwas ähnliches machen möchte, ich habe es jetzt für mich so gelöst:

Sub Makro2()
Dim i As Integer
Dim Pfad As String
Dim Dateiname As String
Dim Blattname As String
Dim Blattname2 As String
Application.DisplayAlerts = False
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="D:\Zusammenfassung.xlsx"
Pfad = Workbooks("Mappe1").Worksheets("Tabelle1").Range("E1")
For i = 1 To 1000
If Workbooks("Mappe1").Worksheets("Tabelle1").Cells(i, 1) = "" Then
Exit For
Else
Dateiname = Workbooks("Mappe1").Worksheets("Tabelle1").Cells(i, 1)
Blattname = Workbooks("Mappe1").Worksheets("Tabelle1").Cells(i, 2)
Blattname2 = Workbooks("Mappe1").Worksheets("Tabelle1").Cells(i, 3)
Workbooks.OpenText Filename:= _
Pfad & Dateiname & ".xls", Origin:=xlMSDOS _
, StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1)), _
TrailingMinusNumbers:=True
Sheets(Blattname).Name = Blattname2
Blattname = Blattname2
Sheets(Blattname).Select
Sheets(Blattname).Copy Before:=Workbooks("Zusammenfassung"). _
Sheets(1)
Workbooks(Dateiname).Close
End If
Next
End Sub
Es gibt sicher elegantere Wege dasselbe zu tun, aber das war das, was ich mir auf die Schnelle auf Basis einiger aufgezeichneter Makros zusammengebastelt habe. Voraussetzung ist, dass man die Dateinamen alle kennt und in der Tabelle1 ablegt (ich habe mir einfach per TotalCommander eine Liste der Dateinamen aus dem Ordner herauskopiert und dann in Tabelle1 eingefügt).
Anzeige
AW: Zahlreise TSV-Dateien in eine XLSX
21.11.2020 21:20:23
Günther
Nun ja, "Wissen ist Macht" sagt ein Sprichwort.
Und das gilt für beide Seiten…
Für mich gilt: Hätte ich das mit dem unterschiedlichen Aufbau der Textdateien gewusst, wäre die Null-Bock-Anmerkung nicht gekommen und natürlich auch nicht das prinzipiell korrekte Statement mit der 1 Tabelle.
Was dich betrifft: Wenn die *.TSV alle in einem Verzeichnis stehen, geht das mit PQ sehr wohl in 1 Rutsch.
Übrigens: TC ist seit mehreren Jahrzehnten mein Lieblingsprogramm rund um die Datei-Organisation.
 
Gruß
Günther  |  mein Excel-Blog
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige