Mehrere txt-Dateien in eine Tabelle bekommen?

Hallo
ich habe eine größere Anzahl an txt Dateien.
Wenn ich diese Einzeln in Excel öffne dann ist
die erste Zeile belegt und der Rest leer.

Nun möchte ich die 20 txt Dateien gleich zeitig öffnen und
eine Tabelle mit so 20 Zeilen haben.

Kann ich in Excel mehrere Dateien in eine Tabelle schreiben?

Vielen Dank
Daniel

Kann ich in Excel mehrere Dateien in eine Tabelle schreiben?

Menü -> Daten -> Externe Daten importieren -> Speicherort auswählen -> Trennzeichen festlegen -> und schließlich 1. Zelle auswählen

Beim 1. Mal eben A1, dann A2 uswusf.

Gruss
Stefan

Hi Daniel,

Kann ich in Excel mehrere Dateien in eine Tabelle schreiben?

was soll die Tabelle denn anschließend zeigen - ein Inhaltsverzeichnis? Das geht nicht, indem 20 Dateien geöffnet werden, sondern indem Du ein Inhaltsverzeichnis (zB mit cmd > dir) erstellst und das importierst.

Gruß Ralf

Hallo Daniel,

der folgende code ermöglicht über einen Dialog das Quellverzeichnis auszuwählen. Aus allen dort vorhandenen txt.Dateien mit dem Dateinamen „x*.txt“ werden die Daten der Zellen „A1:E1“ ausgelesen und untereinander in dieses Arbeitsblatt untereinander kopiert. Die Anzahl der Dateien spielt dabei keine Rolle. Dateinamen und Spaltenanzahl evtl. ändern.

versuch’s mal hiermit (dazu den code in ein modul einfügen):

Public Type BROWSEINFO
 hOwner As Long
 pidlRoot As Long
 pszDisplayName As String
 lpszTitle As String
 ulFlags As Long
 lpfn As Long
 lParam As Long
 iImage As Long
End Type

Declare Function SHGetPathFromIDList Lib "shell32.dll" \_
 Alias "SHGetPathFromIDListA" \_
 (ByVal pidl As Long, ByVal pszPath As String) As Long

Declare Function SHBrowseForFolder Lib "shell32.dll" \_
 Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long

Function GetDirectory(Optional Msg As String) As String
 Dim bInfo As BROWSEINFO
 Dim Path As String
 Dim r As Long, x As Long, pos As Integer
 bInfo.pidlRoot = 0&
 If IsMissing(Msg) Then
 bInfo.lpszTitle = "Wählen Sie bitte einen Ordner aus."
 Else
 bInfo.lpszTitle = Msg
 End If
 bInfo.ulFlags = &H1
 x = SHBrowseForFolder(bInfo)
 Path = Space$(512)
 r = SHGetPathFromIDList(ByVal x, ByVal Path)
 If r Then
 pos = InStr(Path, Chr$(0))
 GetDirectory = Left(Path, pos - 1)
 Else
 GetDirectory = ""
 End If
End Function

Function FileArray(strPath As String, strPattern As String)
 Dim arrDateien()
 Dim intCounter As Integer
 Dim strDatei As String
 If Right(strPath, 1) "\" Then strPath = strPath & "\"
 strDatei = Dir(strPath & strPattern)
 Do While strDatei ""
 intCounter = intCounter + 1
 ReDim Preserve arrDateien(1 To intCounter)
 arrDateien(intCounter) = strDatei
 strDatei = Dir()
 Loop
 FileArray = arrDateien
End Function

Sub DatenImport()
 Dim arrFiles As Variant
 Dim intCounter As Integer, intRow As Integer
 Dim strPath As String
 Application.ScreenUpdating = False
 strPath = GetDirectory("Bitte Pfad der Quelldateien auswählen:")
 If strPath = "" Then Exit Sub
 arrFiles = FileArray(strPath, "x\*.txt")
 intRow = 1
 For intCounter = 1 To UBound(arrFiles)
 Workbooks.Open strPath & "\" & arrFiles(intCounter)
 Range("A1:E1").Copy ThisWorkbook.Worksheets(1).Cells(intRow, 1)
 ActiveWorkbook.Close savechanges:=False
 intRow = intRow + 1
 Next intCounter
End Sub

Gruß
Maria

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]