Rahul
Rahul

Reputation: 121

move files from one folder to another

actually I am searching for code to move excel files from one folder to another if there is any way to do so Please someone help me. I am very sorry but I dont know how to do coding as I have never used VBA in fact I see it for the first time.

I will be grateful to you

Upvotes: 11

Views: 125757

Answers (7)

user7868
user7868

Reputation: 306

Excel now has a Name statement for moving files. Just use

Name "C:\Old Folder\Old Name.xlsx" As "C:\New Folder\New Name.xlsx"

https://learn.microsoft.com/en-us/office/vba/language/reference/user-interface-help/name-statement

Upvotes: 2

ddk
ddk

Reputation: 31

try :

Sub movefile()
Dim fso As New FileSystemObject
Dim fil As file
Dim SourcePath, BackUpPath As String
    
SourcePath = "C:\mydata\"
BackUpPath = "G:\Backup\"

    For Each fil In fso.GetFolder(SourcePath).Files
        fName = fso.GetFileName(fil)
        Name fil As BackUpPath & fName
    Next fil
End Sub

Upvotes: 1

Arun Banakar
Arun Banakar

Reputation: 264

Sub MoveFiles()
    Dim FSO As Object
    Dim SourceFileName As String, DestinFileName As String

    Set FSO = CreateObject("Scripting.Filesystemobject")
    SourceFileName = "C:\Users\Jun.xlsx"
    DestinFileName = "C:\Users\Desktop\Jun.xlsx"

    FSO.MoveFile Source:=SourceFileName, Destination:=DestinFileName

    MsgBox (SourceFileName + " Moved to " + DestinFileName)
End Sub

Upvotes: 21

Sharunas Bielskis
Sharunas Bielskis

Reputation: 1213

Below is code which moves only Excel (xlsx) files from source folder into destination folder. Other types files will be left in the destination folder.

Sub MoveFiles()

Dim sourceFolderPath As String, destinationFolderPath As String
Dim FSO As Object, sourceFolder As Object, file As Object
Dim fileName As String, sourceFilePath As String, destinationFilePath As String

Application.ScreenUpdating = False

sourceFolderPath = "D:\SourceFolder"
destinationFolderPath = "D:\DestinationFolder"

Set FSO = CreateObject("Scripting.FileSystemObject")
Set sourceFolder = FSO.Getfolder(sourceFolderPath)

For Each file In sourceFolder.Files
    fileName = file.Name
    If InStr(fileName, ".xlsx") Then ' Only xlsx files will be moved
        sourceFilePath = file.Path
        destinationFilePath = destinationFolderPath & "\" & fileName
        FSO.MoveFile Source:=sourceFilePath, Destination:=destinationFilePath
    End If ' If InStr(sourceFileName, ".xlsx") Then' Only xlsx files will be moved
Next

'Don't need set file to nothing because it is initialized in for each loop 
'and after this loop is automatically set to Nothing
Set sourceFolder = Nothing
Set FSO = Nothing

End Sub

If you need move only one file the best solution is:

Name sourceFolderPath & fileName As destinationFilePath

Upvotes: 4

CHIN
CHIN

Reputation: 11

Sub move_data()
    'Move test data to folder

    Dim FSO As Object
    Dim FromPath As String
    Dim ToPath As String
    Dim Fdate As Date
    Dim FileInFromFolder As Object


    MkDir "D:\TEST\"        'Create new folder name TEST in D:
    FromPath = "E:\test\"   'Source files
    ToPath = "D:\TEST\"     'Target destination

    Set FSO = CreateObject("scripting.filesystemobject")

    If FSO.FolderExists(FromPath) = False Then
        MsgBox FromPath & " doesn't exist"
        Exit Sub
    End If

    For Each FileInFromFolder In FSO.getfolder(FromPath).Files
        FileInFromFolder.move ToPath
    Next FileInFromFolder

End Sub

Upvotes: 1

Karthick Gunasekaran
Karthick Gunasekaran

Reputation: 2713

Try with the below code

Sub test()
    Set fso = CreateObject("scripting.filesystemobject")
    fso.MoveFile Source:="C:\work\test1.xlsx", Destination:="c:\work\movecheck\" ' replace with source and destination as required.
End Sub

Upvotes: 3

Julian Kuchlbauer
Julian Kuchlbauer

Reputation: 895

You can use the Filesystemobject:

Dim FSO as Object
Set FSO = CreateObject("Scripting.Filesystemobject")
FSO.MoveFile("SourceFileName", "TargetFileName")

Feel free to comment, if you need further instructions.

Upvotes: 2

Related Questions