Sub MoveFiles()
Dim xFd As FileDialog
Dim xTFile As String
Dim xExtArr As Variant
Dim xExt As Variant
Dim xSPath As String
Dim xDPath As String
Dim xSFile As String
Dim xCount As Long
Set xFd = Application.FileDialog(msoFileDialogFolderPicker)
xFd.Title = "Please Select Original Folder:"
If xFd.Show = -1 Then
xSPath = xFd.SelectedItems(1)
Else
Exit Sub
End If
If Right(xSPath, 1) <> "\" Then xSPath = xSPath + "\"
xFd.Title = "Please Select Destination folder:"
If xFd.Show = -1 Then
xDPath = xFd.SelectedItems(1)
Else
Exit Sub
End If
If Right(xDPath, 1) <> "\" Then xDPath = xDPath + "\"
xExtArr = Array("*.xlsm*", "*.Docx")
For Each xExt In xExtArr
xTFile = Dir(xSPath & xExt)
Do While xTFile <> ""
xSFile = xSPath & xTFile
FileCopy xSFile, xDPath & xTFile
Kill xSFile
xTFile = Dir
xCount = xCount + 1
Loop
Next
MsgBox "Total number of moved files is: " & xCount, vbInformation, "Move File(S)"
End Sub
Como funciona:
- Copiar & Cole este código como módulo padrão.
- EXECUTE a macro.
- Abra o Explorer & solicitar que você selecione Pasta original (fonte).
- Selecione a pasta & Pressione OK.
- Novamente, solicita que você selecione o Destino Pasta.
- Pressione Ok, em breve você verá o Message Box como muitos arquivos foram copiados.
Nota:
- Esta linha é editável
Array("*.xlsm*", "*.Docx")
, você pode substituirFile extensions
com outro, conforme sua necessidade.