6.1k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo,
ich habe tausende txt-Dateien und habe auch schon die Dateinamen in einer Spalte stehen. Nun möchte ich den gesamten Inhalt jeder Datei in die 3.Spalte eintragen lassen. Nur habe ich keine Ahnung, wie ich das automatisiert ablaufen lassen kann.

Beispiel:


Spalte 1:

0801
0931
1300
1301
1302
...


Und die jeweiligen Dateien haben halt jeweils nen .txt am Ende und liegen in einem Ordner.

5 Antworten

0 Punkte
Beantwortet von Mitglied (253 Punkte)
Denke mal das du da Excel (gucken) da ganz schön missbrauchen tust. Ist das gleiche als wenn man Excel als Ersatz für das fehlende Terminmanagement nutzt. Solltest vielleicht deinen Ansatz ein wenig überdenken (nochmal) und vielleicht deine Massendaten erstmal organisiert zusammenfügst.

Ich würde eher in Richtung SQL und Scripten denken oder gleich eine vernünftige Lösung in betracht ziehen wenn dies öfter geschehen soll/kann.
0 Punkte
Beantwortet von
Hmm, ich hatte gehofft, dass es vielleicht nicht ganz so schwer sein wird. Von der Theorie her müsste er ja nur die 1.Spalte auslesen nen .txt dranhängen und den Inhalt davon in die jeweils 3.Spalte packen.

Da ich die Daten auf jedenfall in excel brauche, wäre alles andere wohl ein Umweg.
0 Punkte
Beantwortet von merlin59 Experte (2.8k Punkte)
Leicht OT, aber das muss ich loswerden:

Denke mal das du da Excel (gucken) da ganz schön missbrauchen tust. Ist das gleiche als wenn man Excel als Ersatz für das fehlende Terminmanagement nutzt.

Wie man ein Programm im Rahmen dessen Möglichkeiten nutzt, bleibt doch wohl jedem selbst überlassen.

Ich sage ja auch nicht, dass du deine Tastatur missbrauchst, indem du hier ein - nach meinem Dafürhalten - ziemlich anmaßendes Statement abgibst.

mfg
Merlin
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all :-)

liest aus einem angegebene verzeichnis alle .txt aus unf fügt die daten spalte c ein

gruss nighty

Option Explicit

Sub DateienLesen()
Call EventsOff
Dim DateiName As String
DateiName = Dir("C:\Temp\" & "*.txt")
Do While DateiName <> ""
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Temp\" & DateiName, Destination:=Range("C" & ActiveSheet.Cells(Rows.Count, 3).End(xlUp).Row + 1))
.Name = DateiName
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1)
.Refresh BackgroundQuery:=False
End With
DateiName = Dir
Loop
Call EventsOn
End Sub

Public Sub EventsOff()
With Application
.ScreenUpdating = False
.EnableEvents = False
.Calculation = xlCalculationManual
End With
End Sub

Public Sub EventsOn()
With Application
.ScreenUpdating = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
End With
End Sub


die importparameter kannst du mit einer makroaufnahme aufzeichnen und im code gegebenenfalls ersetzen
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

zu eurer anregenden diskussion :-))

mein excel guru und mentor benutze excel als spieleplattform und programmierte monopoly darauf :-)

bin auch schon am überlegen ihn nacheifern zu wollen *hihi* vielleicht M.U.H.L.E (C64 süchtig machendes spiel)

interessant waere hier auf jedenfal die unterschiede von excel zu acces in vb zu sehen,die mit sicherheit verschiedene vorlieben der syntax hervorbringen wuerde

gruss nighty
...