one way
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
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
Function DxfGetDirectory(Optional Msg) As String
Dim bInfo As BROWSEINFO, path$, r&, x&, pos%
bInfo.pidlRoot = 0&
If IsMissing(Msg) Then
bInfo.lpszTitle = "Browse for a folder."
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)): DxfGetDirectory = Left(path, pos - 1)
Else: DxfGetDirectory = ""
End If
End Function
Sub ptest()
Dim b$, y$, p!, i$, k!, e
b = DxfGetDirectory (Msg) &"\"
k = ActiveWorkbook.Worksheets("INDATA").Cells(Rows.Count, 2).End(xlUp).Row
ChDir b
i = Dir("*.txt")
Do While Len(i) > 0
Open i For Input As #1
Do Until EOF(1)
p = 1
Line Input #1, y
With ActiveWorkbook.Worksheets("INDATA")
For Each e In Split(y, ",")
.Cells(Rows.Count, 1).End(xlUp).Offset(k, p) = e
p = 1 + p
Next
k = k + 1
End With
Loop
Close #1
i = Dir
Loop
End Sub
Do you only want 2 columns?
Bookmarks