How to prevent user selecting chart

M

Mike

Hi All,

XL 2K Sp3

I have a sheet with several charts on it, that I want to prevent the user
from being able to select the charts (I don't want the chart to be copied as
a chart, as it seems to cause problems)

I set the .protectselection (and .protectformatting, .protectdata, and the
charts' parent chartobject.protectchartobject) properties of my charts to
true and I protect the sheet they are embedded on with drawingobjects:=true.
But, because I am doing some event handling on these charts I need to set
the charts' locked property = false, or else the mouse click events don't
happen.

The problem, if I hold the shift or ctrl button down and then click on the
chart, no event fires, and I am able to select it and can ctrl-c copy it.
I can prevent it by changing the .locked = false to be .locked =true, but
then the charts' mouse click events do not happen. is there a way to catch
or prevent this?

TIA,

Mike.
 
J

Jim Cone

Embedded charts have events but they must be separately enabled.
That is done by declaring an object of type Chart with events in a class module.

The following code goes in the ThisWorkbook module and displays
a message every time the first embedded chart in the first worksheet
is clicked using the left button.
The Workbook_Open code only needs to be run once.
However, if you make changes to the code,
the Workbook_Open code will usually have to be run again...

'--------------------
'First line goes at the top of the module, just below Option Explicit.
Public WithEvents myChart As Chart

Private Sub myChart_MouseDown(ByVal Button As Long, _
ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
If Button = 1 Then
MsgBox "Please do not copy chart. "
'Deselects chart.
Worksheets(1).Range("A1").Select
End If
End Sub

Private Sub Workbook_Open()
Set myChart = Worksheets(1).ChartObjects(1).Chart
End Sub
-----------------
Jim Cone
San Francisco, USA
http://www.realezsites.com/bus/primitivesoftware


"Mike"
<[email protected]>
wrote in message
Hi All,
XL 2K Sp3
I have a sheet with several charts on it, that I want to prevent the user
from being able to select the charts (I don't want the chart to be copied as
a chart, as it seems to cause problems)

I set the .protectselection (and .protectformatting, .protectdata, and the
charts' parent chartobject.protectchartobject) properties of my charts to
true and I protect the sheet they are embedded on with drawingobjects:=true.
But, because I am doing some event handling on these charts I need to set
the charts' locked property = false, or else the mouse click events don't
happen.
The problem, if I hold the shift or ctrl button down and then click on the
chart, no event fires, and I am able to select it and can ctrl-c copy it.
I can prevent it by changing the .locked = false to be .locked =true, but
then the charts' mouse click events do not happen. is there a way to catch
or prevent this?
TIA,
Mike.
 
J

Jim Cone

Sorry, looks like the Shift and Ctrl key problem still exists with my posted code.

Jim Cone
San Francisco, USA
 

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

Top