ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   List folders but not sub folders (https://www.excelbanter.com/excel-programming/393700-list-folders-but-not-sub-folders.html)

kaiser

List folders but not sub folders
 
Hello all

I am trying to list the folders in a path but not the sub folders.
For example, if i have c:\test\ with folders F1, F2, F3 in it, and in
folder F3 is folder F3.1 i want the output (in excel worksheet) to be

c:\test\f1
c:\test\f2
c:\test\f3

and not have ctest\f3.1 listed as a folder

I have used the code below from this forum - any advice how to amend
it?

Thanks

Set a reference (in VBA, Tools menu, References item) to
Microsoft Scripting Library and use code like the following:


Sub Start()
Dim FSO As Scripting.FileSystemObject
Dim TopFolder As Scripting.Folder
Set FSO = New Scripting.FileSystemObject
Set TopFolder = FSO.GetFolder("C:\Temp")
DoOneFolder TopFolder
End Sub


Sub DoOneFolder(F As Scripting.Folder)
Dim OneFolder As Scripting.Folder
'
' do something with F
Debug.Print F.Path


For Each OneFolder In F.SubFolders
DoOneFolder OneFolder
Next OneFolder
End Sub


joel

List folders but not sub folders
 
just eliminate the recursive call

Delete these 3 lines
For Each OneFolder In F.SubFolders
DoOneFolder OneFolder
Next OneFolder


"kaiser" wrote:

Hello all

I am trying to list the folders in a path but not the sub folders.
For example, if i have c:\test\ with folders F1, F2, F3 in it, and in
folder F3 is folder F3.1 i want the output (in excel worksheet) to be

c:\test\f1
c:\test\f2
c:\test\f3

and not have ctest\f3.1 listed as a folder

I have used the code below from this forum - any advice how to amend
it?

Thanks

Set a reference (in VBA, Tools menu, References item) to
Microsoft Scripting Library and use code like the following:


Sub Start()
Dim FSO As Scripting.FileSystemObject
Dim TopFolder As Scripting.Folder
Set FSO = New Scripting.FileSystemObject
Set TopFolder = FSO.GetFolder("C:\Temp")
DoOneFolder TopFolder
End Sub


Sub DoOneFolder(F As Scripting.Folder)
Dim OneFolder As Scripting.Folder
'
' do something with F
Debug.Print F.Path


For Each OneFolder In F.SubFolders
DoOneFolder OneFolder
Next OneFolder
End Sub



Arvi Laanemets

List folders but not sub folders
 
Hi

Here is an UDF I use to get n-th subfolder from a specified folder. (The UDF
is meant to use as Excel worksheet function, the parameter MyTime allows to
turn the funtion volatile at will.) Probably

Public Function GetSubfolder(MyFolder As String, FolderNum As Integer,
Optional MyTime As Date)
Dim fs, f, f1, sf
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder(MyFolder)
Set sf = f.SubFolders
i = 0
For Each f1 In sf
i = i + 1
If i = FolderNum Then GetSubfolder = f1.Name
Next
End Function


--
Arvi Laanemets
( My real mail address: arvi.laanemets<attarkon.ee )


"kaiser" wrote in message
oups.com...
Hello all

I am trying to list the folders in a path but not the sub folders.
For example, if i have c:\test\ with folders F1, F2, F3 in it, and in
folder F3 is folder F3.1 i want the output (in excel worksheet) to be

c:\test\f1
c:\test\f2
c:\test\f3

and not have ctest\f3.1 listed as a folder

I have used the code below from this forum - any advice how to amend
it?

Thanks

Set a reference (in VBA, Tools menu, References item) to
Microsoft Scripting Library and use code like the following:


Sub Start()
Dim FSO As Scripting.FileSystemObject
Dim TopFolder As Scripting.Folder
Set FSO = New Scripting.FileSystemObject
Set TopFolder = FSO.GetFolder("C:\Temp")
DoOneFolder TopFolder
End Sub


Sub DoOneFolder(F As Scripting.Folder)
Dim OneFolder As Scripting.Folder
'
' do something with F
Debug.Print F.Path


For Each OneFolder In F.SubFolders
DoOneFolder OneFolder
Next OneFolder
End Sub





All times are GMT +1. The time now is 09:48 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com