MrExcel Publishing
Your One Stop for Excel Tips & Solutions

HELP---Loading an excel files by macros


Posted by Randy Smith on September 28, 2001 11:13 AM

What is the best way to copy data into an existing excel file from 4 other excel files? Whould I set up a Macro? Thanks in advance for your help!!


Posted by Tom Urtis on September 28, 2001 2:46 PM

Here's one way to do it

Try using this code...modify as needed and triplicate the main block of code because you have 4 files.


Sub CopyFiles()

'Prepare Excel
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False

‘Open the first file and activate it
ChDir "C:\My Documents"
Workbooks.Open Filename:="C:\My Documents\FileName1.xls"
Windows("FileName1.xls").Activate
‘Go to the source sheet and copy
'your desired range
Sheets("YourSheetName").Select
Range("A1:B20").Copy
‘Re-activate your main (destination) file
Windows("MainFileName.xls").Activate
‘Go to your desired sheet and psv the data,
‘assuming a dynamic range to be on the safe side,
'and assuming you have pre-formatted the
'destination range
Sheets("YourMainSheetName").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
'Close FileName1.xls
Windows("FileName1.xls").Activate
ActiveWindow.Close

‘Repeat the above block of code 3 more times
'for each of your other 3 files,
'and plug in the file names and path(s)

‘FINALLY, re-activate your main file, and save it
Sheets("YourMainSheetName").Select
ActiveWorkbook.Save

'Re-set Excel
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = False

End Sub


HTH
Tom Urtis

Posted by Tom Urtis on September 28, 2001 2:50 PM

One correction

As you might've guessed, the last line of code in the macro should be
Application.DisplayAlerts = True (not False)

Posted by Tom Urtis on September 28, 2001 4:52 PM

Take 3, gremlins making code disappear so soon before Halloween

Here's the code again, some of it did not show up on previous post:

Sub CopyFiles()

'Prepare Excel
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False

‘Open the first file and activate it
ChDir "C:\My Documents"
Workbooks.Open Filename:="C:\My Documents\FileName1.xls"
Windows("FileName1.xls").Activate
‘Go to the source sheet and copy
'your desired range
Sheets("FileName1SheetName").Select
Range("A1:B20").Copy
‘Re-activate your main (destination) file
Windows("MainFileName.xls").Activate
‘Go to your desired sheet and psv the data,
‘assuming a dynamic range to be on the safe side,
'and assuming you have pre-formatted the
'destination range
Sheets("MainFileSheetName").Select
Range("A65536").End(xlUp).Offset(1, 0).Select
Selection.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
'Close FileName1.xls (no need to save)
Windows("FileName1.xls").Activate
ActiveWindow.Close

‘Repeat the above block of code 3 more times
'for each of your other 3 files,
'and plug in the file names and path(s)

‘FINALLY, re-activate your main file, and save it
Windows("MainFileName.xls").Activate
Sheets("MainFileSheetName").Select
ActiveWorkbook.Save

'Re-set Excel
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True

End Sub


HTH
Tom Urtis

: What is the best way to copy data into an existing excel file from 4 other excel files? Whould I set up a Macro? Thanks in advance for your help!!


Posted by Randy Smith on October 01, 2001 5:25 AM

Thanks Tom!!

Tom, I really appreciate your help on this one. The code worked great!!

Here's the code again, some of it did not show up on previous post: Sub CopyFiles() 'Prepare Excel Workbooks.Open Filename:="C:\My Documents\FileName1.xls" Sheets("FileName1SheetName").Select Sheets("MainFileSheetName").Select (no need to save) Sheets("MainFileSheetName").Select Application.DisplayAlerts = True End Sub

: Try using this code...modify as needed and triplicate the main block of code because you have 4 files. : : Sub CopyFiles() : 'Prepare Excel : Application.ScreenUpdating = False : Application.EnableEvents = False : Application.DisplayAlerts = False : ‘Open the first file and activate it : ChDir "C:\My Documents" : Workbooks.Open Filename:="C:\My Documents\FileName1.xls" : Windows("FileName1.xls").Activate : ‘Go to the source sheet and copy : 'your desired range : Sheets("YourSheetName").Select : Range("A1:B20").Copy : ‘Re-activate your main (destination) file : Windows("MainFileName.xls").Activate : ‘Go to your desired sheet and psv the data, : ‘assuming a dynamic range to be on the safe side, : 'and assuming you have pre-formatted the : 'destination range : Sheets("YourMainSheetName").Select : Range("A65536").End(xlUp).Offset(1, 0).Select : Selection.PasteSpecial Paste:=xlValues : Application.CutCopyMode = False : 'Close FileName1.xls : Windows("FileName1.xls").Activate : ActiveWindow.Close : ‘Repeat the above block of code 3 more times : 'for each of your other 3 files, : 'and plug in the file names and path(s) : ‘FINALLY, re-activate your main file, and save it : Sheets("YourMainSheetName").Select : ActiveWorkbook.Save : 'Re-set Excel : Application.ScreenUpdating = True : Application.EnableEvents = True : Application.DisplayAlerts = False : End Sub : : HTH : Tom Urtis :