Avatar of Pearlyn Tan
Pearlyn Tan
 asked on

How to save excel sheet as new name when a cell is changed?

Hello! I'm trying to create a macro that saves the current worksheet as the current date and time when I paste something on the sheet. I get an error on the 'If intersect..' line, saying
Runtime error 1004
Method 'Range' of object '_Global' failed
Sub savedate()
If Intersect(Target, Range(“A1”)) Is Nothing Then
Exit Sub
Else
 ActiveSheet.SaveAs ("Libraries\Documents\Tempcode" & format(Now(), "DD-MMM-YYYY hh mm AMPM") & ".xlsx")
End If
End Sub

Open in new window

The purpose of this is because i'm copying and pasting data into this workbook, and will want to track the date/time that this data was extracted. This data is actually the script of a webpage but I'm unable to incorporate the date when I'm copying it, so I am trying to save the date when I paste it in my workbook. I will use the saved sheet for subsequent steps.

I'm not sure what the error means, and even so, I don't think this will save the worksheet upon pasting. I think I will have to activate the macro once I paste. I'm open to any other methods to save the date/time upon pasting the data. Hope you can help me with the code, thank you!
VBAMicrosoft ExcelMicrosoft Office

Avatar of undefined
Last Comment
Martin Liss

8/22/2022 - Mon
SOLUTION
zvitam

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
ASKER CERTIFIED SOLUTION
Martin Liss

THIS SOLUTION ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
GET A PERSONALIZED SOLUTION
Ask your own question & get feedback from real experts
Find out why thousands trust the EE community with their toughest problems.
Pearlyn Tan

ASKER
Thanks Martin, that was the main mistake. Relatively new to VBA so this helped a lot. However with your code, I had to add
FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False

Open in new window

for it to work.

This is the current full code but I'm having another issue: once the macro runs, the new workbook (with the date and time as file name) will be active and the original workbook will be closed. I'm wondering if I can keep the original workbook (with macros) to be active and have the new workbook to close. If possible, I'd also like to just save the current worksheet instead of the entire workbook.
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A1")) Is Nothing Then
    Exit Sub
Else
Dim filename As String
filename = format(Now(), "DD-MMM-YYYY hh mm AMPM") & ".xlsx"
    ActiveSheet.SaveAs filename:=filename, FileFormat:= _
xlOpenXMLWorkbook, CreateBackup:=False
End If
End Sub

Open in new window

Martin Liss

Please close this question and then ask a new one.
Martin Liss

You’re welcome and I’m glad I was able to help.

If you expand the “Full Biography” section of my profile you’ll find links to some articles I’ve written that may interest you.

Marty - Microsoft MVP 2009 to 2017
              Experts Exchange MVE 2015
              Experts Exchange Top Expert Visual Basic Classic 2012 to 2017
Your help has saved me hundreds of hours of internet surfing.
fblack61