ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   How to prevent user selecting chart (https://www.excelbanter.com/excel-programming/371717-how-prevent-user-selecting-chart.html)

Mike[_96_]

How to prevent user selecting chart
 
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.



Jim Cone

How to prevent user selecting chart
 
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"

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.



Jim Cone

How to prevent user selecting chart
 
Sorry, looks like the Shift and Ctrl key problem still exists with my posted code.

Jim Cone
San Francisco, USA




All times are GMT +1. The time now is 01:39 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com