How To Search For A Folder In VBA

The purpose of this code is to tell you if you need to add a folder or not.

***You don’t need to create a new folder for some files if one exists already.

This code is helpful if you have hundreds of folders to go through, otherwise if you just have a few, you can just scan the short list with your eyeballs.

So we enter the name of the folder we want to look for, in our case it’s called “working”, and then run the code.

We’ll scan through a certain starting directory, in our case it’s called “C:\a”, and if the folder already exists, we’ll return the folder and its path, otherwise, we’ll tell the user that it’s ok to create the folder.

Here is the code:

Option Compare Database

Sub Main()
    Dim fsoFileSystem As Object
    Dim strMainFolder As String
    Dim strLookFor As String
    
    strLookFor = "working"
    strMainFolder = "C:\a"
    
    Set fsoFileSystem = CreateObject("Scripting.FileSystemObject")
    DoSubFolders fsoFileSystem.GetFolder(strMainFolder), strLookFor

    'if the code didn't find the folder, you will get this message.
    Msgbox "'" & strLookFor & "' is not found so go ahead and create it.", vbInformation

End Sub

Sub DoSubFolders(Folder, strLookFor)
    Dim objSubFolder As Object

    For Each objSubFolder In Folder.SubFolders
        
        Debug.Print "*****************************************"
        Debug.Print "SubFolder= " & objSubFolder.Name
        Debug.Print "*****************************************"
        
        If objSubFolder.Name = strLookFor Then
            MsgBox "You already have a folder called '" & strLookFor & "' at '" & objSubFolder.Path & "' . Don't add it again.", vbInformation
            
            'Exit the search
            End
            
        End If
        
        DoSubFolders objSubFolder, strLookFor
    Next
    Dim objFile As Object
    For Each objFile In Folder.Files
        ' Operate on each file
        Debug.Print "FileName= " & objFile.Name
        
    Next
End Sub

If the file is found, we get this message box:

…and if the file is not found (“working2”):

Any questions?




By the way, if you got or are getting value from the VBA information, please give me a tip, thanks!


These posts may help answer your question too...

How To Escape Apostrophe In SQL Update Query

If you are looping a table with thousands of records, you’ll probably run into at least one that has an apostrophe in the field name. Like “Mike’s” or “M’cormick”, or something else. Anyway, here is one way to escape the string when you are doing your update query. Option Compare Database Sub YDriveLoop() ‘4/23/24 erik@loeblcomservices.com […]

How To Make An Access Form Time Picker

Here is a relatively easy way to select times for your time entry text boxes. It’s a reusable form that allows you to pick a time from an Access form. There are probably different ways to do this but here is the way I would do it. On the form that has the time fields, […]

How To Parse A Flat File In Excel VBA

In another post I demonstrated how to access a file on your computer using the MS Office Library. Here it is if you don’t know what I’m talking about. In this post, I am going to show you how to access the file and load it into your spreadsheet. I will do the same thing […]

How to pick a file to load In VBA

Picking a file to load in your Microsoft App is a very important skill to know. In this blog post you will see how to do it. First you need to set a reference to the MS office object library From VBE editor –> select Tools > MS office object library (click check mark) Sub […]

Previous Post

Converting A Excel Spreadsheet To Access Database

Next Post

How To Create A MS Access Dynamic Report Based On A Dynamic Table