Do you want to save changes you made to 'xxxx.xls'?

Hi,
When i close an excell document each time it prompts me "do you want to save changes you made to" even though no modification have been made.Pls help
vnunkooAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Ingeborg Hawighorst (Microsoft MVP / EE MVE)Microsoft MVP ExcelCommented:
Hello vnunkoo,

this can be caused by volatile formulas like

=now()
=today()

and many others, or by macros that force a re-calculation of the sheet, even if nothing has changed.

Look for volatile formulas, look for macros. Post the file (replacing confidential information with dummy data) if you can't find it.

cheers, teylyn
0
vnunkooAuthor Commented:
Hi teylyn,
when i remove the formulas it doesnt prompt me for the message. But i need these formulas. Is there an option to disable the msg. Thanks.
0
Ingeborg Hawighorst (Microsoft MVP / EE MVE)Microsoft MVP ExcelCommented:
In short: No.

If you use functions like NOW() or TODAY()  ( or OFFSET() or many other functions....), they will be recalculated and will update whenever the sheet re-calculates. Whenever you open a workbook, the sheets will be recalculated. So the cell values change, and when you close the workbook, Excel will ask if you want to save the changes.

You can set calculation to "manual", but then you need to remember to hit F9 to calculate the sheet after you have changed the data.

This is a case of "eating your cake and still having it in your hand". You can't have both.

cheers, teylyn
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
Cloud Class® Course: Microsoft Office 2010

This course will introduce you to the interfaces and features of Microsoft Office 2010 Word, Excel, PowerPoint, Outlook, and Access. You will learn about the features that are shared between all products in the Office suite, as well as the new features that are product specific.

MSmaxImplementation ConsultantCommented:
Hi,
You can also use below code which needs to be placed into ThisWorkbook Object (Alt+F11).
Code will automaticaly save the file on close.



Private Sub Workbook_Beforeclose(Cancel As Boolean)

    Application.DisplayAlerts = False
    
    ThisWorkbook.Save

    Application.DisplayAlerts = True
    
End Sub

Open in new window

0
Ingeborg Hawighorst (Microsoft MVP / EE MVE)Microsoft MVP ExcelCommented:
Msmax's suggestion effectively takes away the user's decision whether or not they want to save changes.

Any changes.

Regardless of whether the "changes" are just re-calculated formulas because the time/date is now different from the last time the workbook was opened, or whether the user actually changed any data manually.

I'm not to sure I'd want to change the workbook without notice, if, for example, the user has just accidentally deleted large parts of the data.  With MSmax's suggestion, the changes will be saved without asking for confirmation.

With the suggestion posted above, you do not have any control over whether to save or not. No matter what damage the user has done to the workbook, it will be save WITHOUT ANY WARNING.

Not a good idea.

cheers
0
MSmaxImplementation ConsultantCommented:
telyn of course you right this is not the best idea if thetre is more users using the file and this will do exactly as you described.

vnunkoo you can use one of the sheets as some sort of log to store session changes - if no changes made file will close without saving and error message.

Please see below code for details.
Ps. First 2 parts need to go to ThisWorkbook object, the third one to all Sheets but log (Sheet3 in this example)

Private Sub Workbook_Open()

Dim user As String
Dim ws As Worksheet
Dim lr As Long

'Enable Errors
Application.DisplayAlerts = True

'Sheet3 will keep track of changes
Set ws = ThisWorkbook.Worksheets("Sheet3")

lr = ws.Range("H" & Rows.Count).End(xlUp).Row + 1


user = Environ("UserName")

'record user name and session open
ws.Range("H" & lr & ":I" & lr).Value = Array(user, Date & " " & Time)

End Sub

Private Sub Workbook_Beforeclose(Cancel As Boolean)
    
    Dim user As String
    Dim ws As Worksheet
    Dim lr As Long, lr1 As Long, ls As Date
    Dim cnt As Long

    Set ws = ThisWorkbook.Worksheets("Sheet3")

    lr1 = ws.Range("H" & Rows.Count).End(xlUp).Row

    ws.Range("J" & lr1).Value = Date & " " & Time
    
    ls = ws.Range("I" & lr1).Value
    
    lr = ws.Range("A" & Rows.Count).End(xlUp).Row
    
    cnt = WorksheetFunction.CountIf(ws.Range("D2:D" & lr), ">" & ls)
    
    If cnt = 0 Then
        Application.DisplayAlerts = False
    End If
    
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)

Dim user As String
Dim adr As String
Dim val1 As Variant
Dim ws As Worksheet
Dim lr As Long

Set ws = ThisWorkbook.Worksheets("Sheet3")

lr = ws.Range("A" & Rows.Count).End(xlUp).Row + 1

user = Environ("UserName")
adr = Target.Address
val1 = Target.Value

ws.Range("A" & lr & ":D" & lr).Value = Array(user, adr, val1, Date & " " & Time)

End Sub

Open in new window

0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Excel

From novice to tech pro — start learning today.