I've modified some code I had on hand. You may need to make more changes,
specifically to the value of the ColumnsPerFile constant, and the file filter
argument of the GetOpenFileName command.
It writes the data from the first file starting at the upper left cell of
whatever the selection is when you run the macro. After that, the next file is
x columns to the right, with x determined by the value of the constant
ColumnsPerFile.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Option Explicit
Sub InsertDataFromTextFiles()
Dim ColumnOffset As Long
Dim DestCell As Range
Dim i As Long
Dim SourceData As Range
Dim FileList As Variant
Const ColumnsPerFile As Long = 13
FileList = Application.GetOpenFilename _
(FileFilter:="All Files(*.*), *.*", _
Title:="Select files", MultiSelect:=True)
'returns an array if at least 1 file is selected
'if user cancelled, returns Boolean = False
If TypeName(FileList) <> "Variant()" Then Exit Sub
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set DestCell = Selection.Range("A1")
ColumnOffset = -ColumnsPerFile 'will increment to 0 on 1st pass
For i = LBound(FileList) To UBound(FileList)
Set SourceData = _
Workbooks.Open(FileName:=FileList(i)).Worksheets(1).UsedRange
SourceData.Copy
ColumnOffset = ColumnOffset + ColumnsPerFile
DestCell.Offset(0, ColumnOffset).PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
SourceData.Parent.Parent.Close SAVECHANGES:=False
Next i
DestCell.Activate
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub 'InsertDataFromTextFiles