Ich möchte via Makro viele Text-Dateien in einer Excel-Datei einlesen mit der Überschriften der Text-Datei - Aufbau ist immer gleich hat jemand einen Code?

...komplette Frage anzeigen

1 Antwort

Sorry, verstehe die Frage nicht - meinst du, du hast viele Text-Dateien gegeben und möchtest diese in eine (Richtungs-Akkusativ) Excel-Datei einlesen?

Möchtest du die Inhalte der Textdateien in eine einzige Tabelle untereinander oder nebeneinander haben? Oder eine eigene Tabelle für jede Textdatei?

Möchtest du als Überschrift / Titel der Tabellen die Dateinamen der Textdateien haben? Oder steht der Titel in der ersten Zeile jeder Textdatei?

Hast du schon eine Liste der Namen der Textdateien? Falls nein: Welche Form haben diese Namen?

schaiki 28.06.2016, 10:55

ja ich habe viele Text-Dateien mit immer den selben Aufbau und immer der selben Überschrift. Diese möchte ich in einem Excel haben. So dass oben 1x die Überschrift kommt und darunter alle Daten der einzelnenn Textdateien.

die generierten Text Dateien heißen: 101701_xxx.txt

101701 die erste und die anderen entsprechend andere zahlenkombi

0
PWolff 28.06.2016, 11:36
@schaiki

Codebereich der Tabelle

Im Deklarationsbereich:

dim aktuelleZeile as long

Überschrift generieren:

Cells(1,1).Value = "Überschrift für die folgenden Daten"
aktuelleZeile=3 'Zeile 2 leer lassen und Daten ab Zeile 3 eintragen

Die Dateien bereitstellen:

dim Dateiname as string
chdir Dateipfad
chdrive Dateipfad 'für den Fall, dass der Laufwerksbuchstabe ein anderer ist
Dateiname = Dir("101701_*.txt") 'Falls die Dateinamen diesem Muster entsprechen; sonst anpassen
Do Until Dateiname = ""
'hier kann man falls gewünscht auch eine Überschriftenzeile für die Datei einfügen
DateiEinlesen Dateiname
aktuelleZeile = aktuelleZeile + 1 'diese Zeile rausnehmen, wenn keine Leerzeile zwischen den Dateiinhalten sein soll
Dateiname = Dir()
Loop

Und zum Einlesen:

Private Sub DateiEinlesen(Dateiname as string)
dim zeile as string, zeileSplit() as string, i as integer
Open Dateiname for input as #1
Do Until EOF(1)
Line Input #1, zeile
zeileSplit = Split(zeile, ";") 'oder anderes Trennzeichen als ";", je nachdem
'oder die Zeile auf andere Weise zerlegen
for i = 0 to ubound(zeileSplit)
Cells(aktuelleZeile, i+1).Value = zeileSplit(i)
next i '= 0 to ubound(zeileSplit)
aktuelleZeile = aktuelleZeile + 1
Loop
Close #1
End Sub
0

Was möchtest Du wissen?