Worksheet CLOSE related macros

  • Thread starter Thread starter DKS
  • Start date Start date
D

DKS

Hi,

When a user does a CLOSE of a worksheet, I want to run certain macros. I
can capture the event of closing the workset. So no sweat there.

But in my macro, I want to take certain actions depending on whether the
worksheet is yet to be saved (Yes or No). Meaning, if there are no changes
to be saved then I want to exit the macro; otherwise I want to run the macro.

Other than using a public boolean field that maintains a status on is the
worksheet changed, is there any other way I can get excel to give me this
information?

Many thanks in anticipation.

(AB123).
 
Hi,


If ThisWorkbook.Saved Then
'Do Nothing
Else
Call MyMacro
End If

Mike
 
From VBE left treeview search for the workbook name and click on + to expand
it. Within that you should see the following

VBAProject(Your_Filename)
Microsoft Excel Objects
Sheet1(Sheet1)
Sheet2(Sheet2)
Sheet3(Sheet3)
This Workbook

Double click 'This WorkBook' and paste the below code to the right code pane.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

On sheet activate you can get the key fields to a public variable and check
out this during close..to see whether these fields have changed..

If this post helps click Yes
 
Oops..misread your query...Please ignore..

Jacob Skaria said:
From VBE left treeview search for the workbook name and click on + to expand
it. Within that you should see the following

VBAProject(Your_Filename)
Microsoft Excel Objects
Sheet1(Sheet1)
Sheet2(Sheet2)
Sheet3(Sheet3)
This Workbook

Double click 'This WorkBook' and paste the below code to the right code pane.

Private Sub Workbook_BeforeClose(Cancel As Boolean)

End Sub

On sheet activate you can get the key fields to a public variable and check
out this during close..to see whether these fields have changed..

If this post helps click Yes
 
Thanks Mike, this is exactly what I was looking for.

Jacob: thanks for your reply, but I preferred to work without public
variables and so I preferred Mike's solution.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top