Copy user selected files to new folder.
I know I'm missing a critical piece but can't figure it out. How do I get
just the name of the file they selected (without path)? Sub CopyFilesMacro() Application.ScreenUpdating = False Sheets("Input").Select MyPath = Range("B2").Value MsgBox ("As soon as you click the OK button, a Browse Dialog box will " _ & "pop up. Use it to choose the files you want to copy to the location shown " _ & "in cell B2 of the Input sheet.") Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems FileCopy vrtSelectedItem, MyPath & "\" & vrtSelectedItem.Name & ".xls" Next vrtSelectedItem Else End If End With Set fd = Nothing End Sub |
Copy user selected files to new folder.
Try something like the following:
For Each vrtSelectedItem In .SelectedItems FileNameOnly = Mid(vrtSelectedItem, _ InStrRev(vrtSelectedItem, "\") + 1) Debug.Print FileNameOnly Next vrtSelectedItem Cordially, Chip Pearson Microsoft Most Valuable Professional Excel Product Group, 1998 - 2009 Pearson Software Consulting, LLC www.cpearson.com (email on web site) On Tue, 10 Mar 2009 14:34:04 -0700, Keithlo wrote: I know I'm missing a critical piece but can't figure it out. How do I get just the name of the file they selected (without path)? Sub CopyFilesMacro() Application.ScreenUpdating = False Sheets("Input").Select MyPath = Range("B2").Value MsgBox ("As soon as you click the OK button, a Browse Dialog box will " _ & "pop up. Use it to choose the files you want to copy to the location shown " _ & "in cell B2 of the Input sheet.") Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems FileCopy vrtSelectedItem, MyPath & "\" & vrtSelectedItem.Name & ".xls" Next vrtSelectedItem Else End If End With Set fd = Nothing End Sub |
Copy user selected files to new folder.
Here is one way. Be careful of the file extension. If you have them visible
on your system you do not need it in the destination path. It will be part of the file name. For Each vrtSelectedItem In .SelectedItems Set Fso = CreateObject("Scripting.FileSystemObject") fName = Fso.GetFileName(vrtSelectedItem) MsgBox fName FileCopy vrtSelectedItem, MyPath & "\" & fName & ".xls" '<<Caution Next vrtSelectedItem "Keithlo" wrote: I know I'm missing a critical piece but can't figure it out. How do I get just the name of the file they selected (without path)? Sub CopyFilesMacro() Application.ScreenUpdating = False Sheets("Input").Select MyPath = Range("B2").Value MsgBox ("As soon as you click the OK button, a Browse Dialog box will " _ & "pop up. Use it to choose the files you want to copy to the location shown " _ & "in cell B2 of the Input sheet.") Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems FileCopy vrtSelectedItem, MyPath & "\" & vrtSelectedItem.Name & ".xls" Next vrtSelectedItem Else End If End With Set fd = Nothing End Sub |
Copy user selected files to new folder.
Thanks very much, Chip. I will try this.
"Chip Pearson" wrote: Try something like the following: For Each vrtSelectedItem In .SelectedItems FileNameOnly = Mid(vrtSelectedItem, _ InStrRev(vrtSelectedItem, "\") + 1) Debug.Print FileNameOnly Next vrtSelectedItem Cordially, Chip Pearson Microsoft Most Valuable Professional Excel Product Group, 1998 - 2009 Pearson Software Consulting, LLC www.cpearson.com (email on web site) On Tue, 10 Mar 2009 14:34:04 -0700, Keithlo wrote: I know I'm missing a critical piece but can't figure it out. How do I get just the name of the file they selected (without path)? Sub CopyFilesMacro() Application.ScreenUpdating = False Sheets("Input").Select MyPath = Range("B2").Value MsgBox ("As soon as you click the OK button, a Browse Dialog box will " _ & "pop up. Use it to choose the files you want to copy to the location shown " _ & "in cell B2 of the Input sheet.") Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems FileCopy vrtSelectedItem, MyPath & "\" & vrtSelectedItem.Name & ".xls" Next vrtSelectedItem Else End If End With Set fd = Nothing End Sub |
Copy user selected files to new folder.
Thanks very much, JLGWhiz. I will try this.
"JLGWhiz" wrote: Here is one way. Be careful of the file extension. If you have them visible on your system you do not need it in the destination path. It will be part of the file name. For Each vrtSelectedItem In .SelectedItems Set Fso = CreateObject("Scripting.FileSystemObject") fName = Fso.GetFileName(vrtSelectedItem) MsgBox fName FileCopy vrtSelectedItem, MyPath & "\" & fName & ".xls" '<<Caution Next vrtSelectedItem "Keithlo" wrote: I know I'm missing a critical piece but can't figure it out. How do I get just the name of the file they selected (without path)? Sub CopyFilesMacro() Application.ScreenUpdating = False Sheets("Input").Select MyPath = Range("B2").Value MsgBox ("As soon as you click the OK button, a Browse Dialog box will " _ & "pop up. Use it to choose the files you want to copy to the location shown " _ & "in cell B2 of the Input sheet.") Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems FileCopy vrtSelectedItem, MyPath & "\" & vrtSelectedItem.Name & ".xls" Next vrtSelectedItem Else End If End With Set fd = Nothing End Sub |
Copy user selected files to new folder.
You were right about the file extension. In my case it was part of the file
name. Thanks for that additional info. "JLGWhiz" wrote: Here is one way. Be careful of the file extension. If you have them visible on your system you do not need it in the destination path. It will be part of the file name. For Each vrtSelectedItem In .SelectedItems Set Fso = CreateObject("Scripting.FileSystemObject") fName = Fso.GetFileName(vrtSelectedItem) MsgBox fName FileCopy vrtSelectedItem, MyPath & "\" & fName & ".xls" '<<Caution Next vrtSelectedItem "Keithlo" wrote: I know I'm missing a critical piece but can't figure it out. How do I get just the name of the file they selected (without path)? Sub CopyFilesMacro() Application.ScreenUpdating = False Sheets("Input").Select MyPath = Range("B2").Value MsgBox ("As soon as you click the OK button, a Browse Dialog box will " _ & "pop up. Use it to choose the files you want to copy to the location shown " _ & "in cell B2 of the Input sheet.") Dim fd As FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) Dim vrtSelectedItem As Variant With fd If .Show = -1 Then For Each vrtSelectedItem In .SelectedItems FileCopy vrtSelectedItem, MyPath & "\" & vrtSelectedItem.Name & ".xls" Next vrtSelectedItem Else End If End With Set fd = Nothing End Sub |
All times are GMT +1. The time now is 11:58 PM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com