How to prevent "Changed ... Save?" Message after disabling Shape?
You can use the custom properties of the worksheets to help.
part1
====
Add a custom property to each worksheet when the workbook is opened. In my
example I call it "Dirty"
--------------------
Private Sub Workbook_Open()
Dim x As Worksheet
If ThisWorkbook.ReadOnly Then
ThisWorkbook.Sheets("Sheet1").Shapes(1).ControlFor mat.Enabled = False
For Each x In ActiveWorkbook.Worksheets
x.CustomProperties.Add _
Name:="Dirty", Value:="False"
Next x
End If
End Sub
--------------------
part 2
====
In each worksheet add code to the chnage event to update your custom property
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.CustomProperties(1).Value = "True"
End Sub
part 3
====
Finally, in the workbook close event, check your custom properties and set
the saved property if required.
Dim x As Worksheet
If ThisWorkbook.Sheets("Sheet1").Shapes(1).ControlFor mat.Enabled = False Then
For Each x In ActiveWorkbook.Worksheets
If x.CustomProperties(1).Value = "True" Then
ActiveWorkbook.Saved = False
Exit For
Else
ActiveWorkbook.Saved = True
End If
Next x
End If
I ran this a few times and it seems to function like you require.
One annoyance is that I had to use the index value 1 to refer to the custom
property.
I assume that there is a way to access it by name, but I'll leave that to
you to try.
Hope this helps/works for you!
--
Les Torchia-Wells
"Joe HM" wrote:
Hello -
I posted this question before but I have narrowed down what the problem
is.
I have a workbook with a button that I want to disable when it is
opened in read-only (just to prevent people from pressing it). So I
use
If ThisWorkbook.ReadOnly Then
ThisWorkbook.Sheets("Sheet1").Shapes(1).ControlFor mat.Enabled =
False
The problem is that this somehow triggers Excel to detect a change and
as whether to save the workbook upon closing.
I used ThisWorkbook.Saved = True after this but it did not make a
difference. I even used the Application.EnableEvents = False/True
around it.
Any ideas?
Thanks,
Joe
|