VBA Macro used in the Microsoft Office Excel Application

Excel Save Copy of Workbook

Share on facebook
Share on twitter
Share on linkedin
If you are consistently creating a copy of an Excel Workbook you are spending time completing tedious repetitive tasks. Navigating to the Workbook, saving a copy, renaming the new Workbook, and potential creating a new Folder for storage. The good news is there is a better way using VBA! This Excel Macro saves a copy of the Active Workbook.  By Default, the Folder Path will be the same location as the Active Workbook. Before saving, this macro will look for a folder named after the current year.  Next this macro will look for a folder named as the current month.  If either of these folders do not exist, they will be created automatically. The copy of the Active Workbook will be saved to the appropriate Folder Path based on the current year and month.  By Default, the New Workbook’s name will be Today’s Date (MM.DD.YYYY). This macro saves you time by completing all the busy work. It is difficult to remain consistent with how you are storing new copies. This Excel macro standardizes storage by creating new folders making it easy to navigate through historical records. Take this macro to the next level and leverage the Excel Calendar Reminder Macros to schedule reoccurring actions on your Outlook Calendar. You can use the Open action to schedule an Excel Workbook to open at a specific time. You can then run this macro from the open Workbook. The Call action automates all of this, opening an Excel Workbook and calling a specific macro within it.

See it in Action!

Watch this video to see this macro in action.

The Code

Here is the code for this macro. Make sure the following References are setup before running it: Visual Basic For Applications, Microsoft Excel 16.0 Object Library
'Leverage & Lean "Less Clicks, More Results"
Sub SaveCopyofWorkbook()
Dim FilePath As String '
Dim FolderObj As Object '
 
On Error GoTo LeverageLean
 
Application.DisplayAlerts = False 'Hide Display Alerts
 
FilePath = Left(ActiveWorkbook.FullName, Len(ActiveWorkbook.FullName) - Len(ActiveWorkbook.Name)) & Format(Date, "YYYY") 'Active Workbook File Path and Current Year Folder

Set FolderObj = CreateObject("Scripting.FileSystemObject")
If FolderObj.FolderExists(FilePath) Then 'The Folder has been found
Else: FolderObj.CreateFolder (FilePath) 'The Folder has been created
End If

FilePath = FilePath & "\" & Format(Date, "MMMM") 'File Path and Current Month Folder

Set FolderObj = CreateObject("Scripting.FileSystemObject")
If FolderObj.FolderExists(FilePath) Then 'The Folder has been found
Else: FolderObj.CreateFolder (FilePath) 'The Folder has been created
End If
 
Application.ActiveWorkbook.SaveAs Filename:=FilePath & "\" & Format(Date, "MM.DD.YYYY") & Right(ActiveWorkbook.FullName, (Len(ActiveWorkbook.FullName) + 1) - InStrRev(ActiveWorkbook.FullName, ".")) 'Save copy to Active Workbook File Path\Current Year\Current Month

MsgBox "A copy of this Active Workbook named """ & Format(Date, "MM.DD.YYYY") & Right(ActiveWorkbook.FullName, (Len(ActiveWorkbook.FullName) + 1) - InStrRev(ActiveWorkbook.FullName, ".")) & """ has been saved to the following location:" & vbNewLine & vbNewLine & Left(FilePath, InStr(1, ActiveWorkbook.FullName, ActiveWorkbook.Name) - 1)

Exit Sub

LeverageLean:
MsgBox (Err.Number & " - " & Err.Description & vbNewLine & vbNewLine & "Don't hesitate to email me: brentschneider@leveragelean.com")
  
End Sub
'Stay Awesome

Macro Monday

Here is the Macro Monday video this macro was featured in. Watch this video to learn how to get the most out of this macro and start using it today!

Customization

These lines of code can be customized to personalize this macro.
8. Application.DisplayAlerts = False ‘Hide Display Alerts If you want to see alerts such as a Workbook copy overwriting an existing one remove this code line
24. Application.ActiveWorkbook.SaveAs Filename:=FilePath & “” & Format(Date, “MM.DD.YYYY”) & Right(ActiveWorkbook.FullName, (Len(ActiveWorkbook.FullName) + 1) – InStrRev(ActiveWorkbook.FullName, “.”)) ‘Save copy to Active Workbook File PathCurrent YearCurrent Month If you want to change the copied Workbook Name refer to the text “” & Format(Date, “MM.DD.YYYY”) in this code line. You can update this to include text and not just the current date. Example: “Company Payroll-” & Format(Date, “MM.DD.YYYY”)
26. MsgBox “A copy of this Active Workbook named “”” & Format(Date, “MM.DD.YYYY”) & Right(ActiveWorkbook.FullName, (Len(ActiveWorkbook.FullName) + 1) – InStrRev(ActiveWorkbook.FullName, “.”)) & “”” has been saved to the following location:” & vbNewLine & vbNewLine & Left(FilePath, InStr(1, ActiveWorkbook.FullName, ActiveWorkbook.Name) – 1) Remove the MsgBox or make it comment to not see it once the macro finishes
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments

Search for Excel Macros

Recent Macros

VBA Macro used in the Microsoft Office Outlook Application

Outlook AutoSave Attachments

Do you frequently receive email attachments that need to be saved to your computer?  Wouldn’t it be nice if these attachments were automatically saved without having to interact with them? Cool thing is there are multiple ways to do this with VBA! This Outlook macro gives you a variety of options to automatically save email attachments. It can find attachments in the emails you select or by looping through your entire inbox. You can even set up this macro to check for attachments when emails are received.

VBA Macro used in the Microsoft Office Word Application

Word Copy Multiple Documents into One

Have you ever had different Word Documents coming from various sources and need to combine them into one?  Say for example a different team member is assigned to work on the Beginning, Middle, and End of a paper.  Once each part is complete you have to open each Word Document, select all the content, then copy and navigate back to your original document to paste. Fortunately, there is a better way with VBA! With the Copy Multiple Documents into One macro you can quickly combine all these Word Documents with one click! This Word macro allows you to delegate more work because you can efficiently combine all the efforts of your team.

VBA Macro used in the Microsoft Office Word Application

Word Quick PDF

If you have had to save a Word Document as a PDF you likely have these steps memorized: Navigate to File, selecting Save As, finding the Folder Path, search through the File types for PDF, select PDF and click Save. Nothing complicated about this process but the potential to make a mistake exist at every step along the way. Making a mistake slow you down more than anything when working on your computer. Good news is there is a better way using VBA! The Word Quick PDF macro saves the Active Word Document as a PDF with one click!

First time using VBA?

The Developer Tab is an additional section of the ribbon when activated allows you access to Visual Basic in Applications like Excel, Outlook, Word.
Setup Now
Once the Developer Tab is available you will have the capability to update your security to allow Macros to run in the current application.
Setup Now
A sub of code is a collection of objects and variables. For the code to successfully run a library of references needs to be set.
Setup Now

Looking for more?

Subscribe as an Insider to receive additional rights.

Contact Us

Looking to improve your computer processes?
Leverage & Lean is here to help!

Copyright © 2019 Leverage & Lean – Uptown Style WordPress theme by GoDaddy