vba code to copy all files into a new folder

amineact

New Member
Joined
Apr 12, 2022
Messages
17
Office Version
  1. 365
Platform
  1. Windows
Hello there, im in the process of writing a code that based on a cell value will create a new folder, name it to the cell value and then proceed to copy all the files from an already existing folder.
However, i keep getting an error : path not found
Here's the code

VBA Code:
Sub CopyFilesFromSubFolders()
    Dim FSO    As Object
    Dim FromPath As String
    Dim ToPath As String
    Dim FileExt As String
    Dim CurrentFile As Object
    Dim dvCell As String
    Dim destin As String
    Dim path2 As String
    dvCell = Workbooks("Scéno.xlsm").Sheets("Scén").Range("B11")
    FromPath = "U:\origin\"                   
    ToPath = "U:\target" & CStr(dvCell) 
    Set FSO = CreateObject("Scripting.FileSystemObject")
    If Not FSO.FolderExists(ToPath) Then
     FSO.CreateFolder ToPath
    End If
    path2 = ToPath & "\"
    Debug.Print
    For Each CurrentFile In FSO.GetFolder(FromPath).Files
            CurrentFile.copy (FSO.BuildPath(path2, CurrentFile.Name))
    Next
    Set FSO = Nothing
    Set CurrentFile = Nothing
   
End Sub
Thanks for any help
 

Excel Facts

Shade all formula cells
To shade all formula cells: Home, Find & Select, Formulas to select all formulas. Then apply a light fill color.
What is the value of dvDell when you get the error & what should the correct path be?
 
Upvote 0
What is the value of dvDell when you get the error & what should the correct path be?
Devcell for the moment is "Central" a string. The correct path would be "U\Target\"Central". And central doesnt exists, hence i used the Createfolder command.
 
Upvote 0
You are missing a backslash from the below line:
VBA Code:
ToPath = "U:\target" & CStr(dvCell)

Should be:
VBA Code:
ToPath = "U:\target\" & CStr(dvCell)
 
Upvote 0
In that case you are missing \ after target on this line
Excel Formula:
ToPath = "U:\target" & CStr(dvCell)
 
Upvote 0
would that still not create the folder though? it wouldn't be the intended folder, but it shouldn't error?

is there a rogue space in your dvCell value perhaps?

Edit for clarity - when defining path2, if there's a space at the end of the ToPath variable (caused by the dvCell value), it will include that before the final \ thus rendering the path wrong and erroring out.
 
Upvote 0
would that still not create the folder though? it wouldn't be the intended folder, but it shouldn't error?

is there a rogue space in your dvCell value perhaps?
Hello Craggs, i recheked it is actually "Central ", with a space after Central.
Would that affect the code.
 
Upvote 0
would that still not create the folder though? it wouldn't be the intended folder, but it shouldn't error?
Depends on whether those are genuine paths, or just fake paths.

As you have a space try
VBA Code:
ToPath = "U:\target\" & Trim(dvCell)
 
Upvote 0
when the folder is created it will trim off the space, then when your defining the location and adding the new slash it won't find it.

"U:\target\Central" is created, then when adding it looks for the folder "U:\target\Central \"

easy fix would be to TRIM then dvCell value (or edit manually in the other sheet?), then you can probably do away with using path2 aswell, FSO.buildpath should handle it.

VBA Code:
Sub CopyFilesFromSubFolders()
    Dim FSO    As Object
    Dim FromPath As String
    Dim ToPath As String
    Dim FileExt As String
    Dim CurrentFile As Object
    Dim dvCell As String
    Dim destin As String

    dvCell = Trim(Workbooks("Scéno.xlsm").Sheets("Scén").Range("B11"))
    FromPath = "U:\origin\"                   
    ToPath = "U:\target\" & CStr(dvCell) 
    Set FSO = CreateObject("Scripting.FileSystemObject")
    
    If Not FSO.FolderExists(ToPath) Then
           FSO.CreateFolder ToPath
    End If
  
    For Each CurrentFile In FSO.GetFolder(FromPath).Files
            CurrentFile.copy (FSO.BuildPath(ToPath, CurrentFile.Name))
    Next
    Set FSO = Nothing
    Set CurrentFile = Nothing
   
End Sub
 
Upvote 0
Solution

Forum statistics

Threads
1,223,268
Messages
6,171,100
Members
452,379
Latest member
IainTru

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top