ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Cannot activate a chart on a sheet (https://www.excelbanter.com/excel-programming/368365-cannot-activate-chart-sheet.html)

Farooq Sheri

Cannot activate a chart on a sheet
 
I have a embedded chart (there is only one chart) on a sheet. I tried naming
it with

ActivesSheet.ChartObjects(1).Name = "chart 1"

Question 1: did the above statement name the chart object or the chart
contained within the chart object?

Using a macro I tried to activate the chart with the command

Worksheets(2).ChartObjects(1).Activate

this however did not activate the chart.

If however I change the command to

Worksheets(2).ChartObjects("Chart 75").Activate

the chart is activated ("Chart 75" is the name of the chart as it appears on
the top of the widow that pops up if you right click on the chart and select
Chart Window). This name (on the Chart Window) changes everytime the chart is
redrawn.

Question 2: How can I select the chart on the desired sheet?
Question 3: Can I somehow extract the name as it appears on the Chart Window?

I do not know if it has anything to do with it, but the chart on sheet 2 was
placed as a result of a comboBox_Change code. ComboBox is on sheet 1.

Thanks for your help.

Peter T

Cannot activate a chart on a sheet
 
Comments in line -

"Farooq Sheri" wrote in message
...
I have a embedded chart (there is only one chart) on a sheet. I tried

naming
it with

ActivesSheet.ChartObjects(1).Name = "chart 1"

Question 1: did the above statement name the chart object or the chart
contained within the chart object?


It should do if you amend the typo ActivesSheet to ActiveSheet and no other
chart on the sheet with that name (subject protection).

Using a macro I tried to activate the chart with the command

Worksheets(2).ChartObjects(1).Activate

this however did not activate the chart.

If however I change the command to

Worksheets(2).ChartObjects("Chart 75").Activate

the chart is activated ("Chart 75" is the name of the chart as it appears

on
the top of the widow that pops up if you right click on the chart and

select
Chart Window).


Not sure why ChartObjects(1) fails but ChartObjects("Chart 75") works,
there's obviously at least one chartobject on the sheet.

This name (on the Chart Window) changes everytime the chart is
redrawn.


You mean each time you deleate & recreate a chart. The number will increment
to the total number of objects that have 'ever' been added to the sheet. The
counter is only reset if the wb & sheet is saved with no objects.

Question 2: How can I select the chart on the desired sheet?


Need to activate the sheet first.

Question 3: Can I somehow extract the name as it appears on the Chart

Window?

Activesheet.Chartobjects.Chart.Name returns 'sheetname chartname' which will
be prefixed with the sheetname (the chartwindow also includes [wb-name]).
It's actual name though for referencing purposes is -
Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name

I do not know if it has anything to do with it, but the chart on sheet 2

was
placed as a result of a comboBox_Change code. ComboBox is on sheet 1.


Not directly related

Regards,
Peter T



Farooq Sheri

Cannot activate a chart on a sheet
 
Thanks Peter for the detailed reply. There is no typo with the command
ActiveSheet.ChartObjects(1).Name = "chart 1" within my code.

At any given time there is only one chart on the sheet so it really beats me
why the command Worksheets(2).ChartObjects(1).Activate would not activate
the chart (the sheet is already activated).

Although I am still struggling with it but thank you for your reply. I will
try using the chart name as suggested by you
(Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name) and see if I
can get the chart activated.

Regards
Farooq

"Peter T" wrote:

Comments in line -

"Farooq Sheri" wrote in message
...
I have a embedded chart (there is only one chart) on a sheet. I tried

naming
it with

ActivesSheet.ChartObjects(1).Name = "chart 1"

Question 1: did the above statement name the chart object or the chart
contained within the chart object?


It should do if you amend the typo ActivesSheet to ActiveSheet and no other
chart on the sheet with that name (subject protection).

Using a macro I tried to activate the chart with the command

Worksheets(2).ChartObjects(1).Activate

this however did not activate the chart.

If however I change the command to

Worksheets(2).ChartObjects("Chart 75").Activate

the chart is activated ("Chart 75" is the name of the chart as it appears

on
the top of the widow that pops up if you right click on the chart and

select
Chart Window).


Not sure why ChartObjects(1) fails but ChartObjects("Chart 75") works,
there's obviously at least one chartobject on the sheet.

This name (on the Chart Window) changes everytime the chart is
redrawn.


You mean each time you deleate & recreate a chart. The number will increment
to the total number of objects that have 'ever' been added to the sheet. The
counter is only reset if the wb & sheet is saved with no objects.

Question 2: How can I select the chart on the desired sheet?


Need to activate the sheet first.

Question 3: Can I somehow extract the name as it appears on the Chart

Window?

Activesheet.Chartobjects.Chart.Name returns 'sheetname chartname' which will
be prefixed with the sheetname (the chartwindow also includes [wb-name]).
It's actual name though for referencing purposes is -
Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name

I do not know if it has anything to do with it, but the chart on sheet 2

was
placed as a result of a comboBox_Change code. ComboBox is on sheet 1.


Not directly related

Regards,
Peter T




Peter T

Cannot activate a chart on a sheet
 
Sometimes it's necessary to deselect some other chart first, particularly if
it's in a window. Also sometimes necessary to select the .Chart if it was
selected as a chartobject. But if the current selection is say a cell I have
no idea why referring to it by it's index number fails but works with it's
name.

Are you absolutely sure there's only one chartobject, eg you didn't once
assume deleting all the rows it's in would delete it.
In the immediate window (ctrl-g) type
?activesheet.chartobjects.count
and press enter

Regards,
Peter T

"Farooq Sheri" wrote in message
...
Thanks Peter for the detailed reply. There is no typo with the command
ActiveSheet.ChartObjects(1).Name = "chart 1" within my code.

At any given time there is only one chart on the sheet so it really beats

me
why the command Worksheets(2).ChartObjects(1).Activate would not activate
the chart (the sheet is already activated).

Although I am still struggling with it but thank you for your reply. I

will
try using the chart name as suggested by you
(Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name) and see if I
can get the chart activated.

Regards
Farooq

"Peter T" wrote:

Comments in line -

"Farooq Sheri" wrote in message
...
I have a embedded chart (there is only one chart) on a sheet. I tried

naming
it with

ActivesSheet.ChartObjects(1).Name = "chart 1"

Question 1: did the above statement name the chart object or the chart
contained within the chart object?


It should do if you amend the typo ActivesSheet to ActiveSheet and no

other
chart on the sheet with that name (subject protection).

Using a macro I tried to activate the chart with the command

Worksheets(2).ChartObjects(1).Activate

this however did not activate the chart.

If however I change the command to

Worksheets(2).ChartObjects("Chart 75").Activate

the chart is activated ("Chart 75" is the name of the chart as it

appears
on
the top of the widow that pops up if you right click on the chart and

select
Chart Window).


Not sure why ChartObjects(1) fails but ChartObjects("Chart 75") works,
there's obviously at least one chartobject on the sheet.

This name (on the Chart Window) changes everytime the chart is
redrawn.


You mean each time you deleate & recreate a chart. The number will

increment
to the total number of objects that have 'ever' been added to the sheet.

The
counter is only reset if the wb & sheet is saved with no objects.

Question 2: How can I select the chart on the desired sheet?


Need to activate the sheet first.

Question 3: Can I somehow extract the name as it appears on the Chart

Window?

Activesheet.Chartobjects.Chart.Name returns 'sheetname chartname' which

will
be prefixed with the sheetname (the chartwindow also includes

[wb-name]).
It's actual name though for referencing purposes is -
Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name

I do not know if it has anything to do with it, but the chart on sheet

2
was
placed as a result of a comboBox_Change code. ComboBox is on sheet 1.


Not directly related

Regards,
Peter T






Farooq Sheri

Cannot activate a chart on a sheet
 
Thanks Peter. I used the name as obtained from ActiveChart.Parent.Name to get
the desired results.

Thanks a lot.

Farooq Sheri

"Peter T" wrote:

Sometimes it's necessary to deselect some other chart first, particularly if
it's in a window. Also sometimes necessary to select the .Chart if it was
selected as a chartobject. But if the current selection is say a cell I have
no idea why referring to it by it's index number fails but works with it's
name.

Are you absolutely sure there's only one chartobject, eg you didn't once
assume deleting all the rows it's in would delete it.
In the immediate window (ctrl-g) type
?activesheet.chartobjects.count
and press enter

Regards,
Peter T

"Farooq Sheri" wrote in message
...
Thanks Peter for the detailed reply. There is no typo with the command
ActiveSheet.ChartObjects(1).Name = "chart 1" within my code.

At any given time there is only one chart on the sheet so it really beats

me
why the command Worksheets(2).ChartObjects(1).Activate would not activate
the chart (the sheet is already activated).

Although I am still struggling with it but thank you for your reply. I

will
try using the chart name as suggested by you
(Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name) and see if I
can get the chart activated.

Regards
Farooq

"Peter T" wrote:

Comments in line -

"Farooq Sheri" wrote in message
...
I have a embedded chart (there is only one chart) on a sheet. I tried
naming
it with

ActivesSheet.ChartObjects(1).Name = "chart 1"

Question 1: did the above statement name the chart object or the chart
contained within the chart object?

It should do if you amend the typo ActivesSheet to ActiveSheet and no

other
chart on the sheet with that name (subject protection).

Using a macro I tried to activate the chart with the command

Worksheets(2).ChartObjects(1).Activate

this however did not activate the chart.

If however I change the command to

Worksheets(2).ChartObjects("Chart 75").Activate

the chart is activated ("Chart 75" is the name of the chart as it

appears
on
the top of the widow that pops up if you right click on the chart and
select
Chart Window).

Not sure why ChartObjects(1) fails but ChartObjects("Chart 75") works,
there's obviously at least one chartobject on the sheet.

This name (on the Chart Window) changes everytime the chart is
redrawn.

You mean each time you deleate & recreate a chart. The number will

increment
to the total number of objects that have 'ever' been added to the sheet.

The
counter is only reset if the wb & sheet is saved with no objects.

Question 2: How can I select the chart on the desired sheet?

Need to activate the sheet first.

Question 3: Can I somehow extract the name as it appears on the Chart
Window?

Activesheet.Chartobjects.Chart.Name returns 'sheetname chartname' which

will
be prefixed with the sheetname (the chartwindow also includes

[wb-name]).
It's actual name though for referencing purposes is -
Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name

I do not know if it has anything to do with it, but the chart on sheet

2
was
placed as a result of a comboBox_Change code. ComboBox is on sheet 1.

Not directly related

Regards,
Peter T







Peter T

Cannot activate a chart on a sheet
 
Did you programmatically check how many chartobjects exit on the sheet.

Regards,
Peter T

"Farooq Sheri" wrote in message
...
Thanks Peter. I used the name as obtained from ActiveChart.Parent.Name to

get
the desired results.

Thanks a lot.

Farooq Sheri

"Peter T" wrote:

Sometimes it's necessary to deselect some other chart first,

particularly if
it's in a window. Also sometimes necessary to select the .Chart if it

was
selected as a chartobject. But if the current selection is say a cell I

have
no idea why referring to it by it's index number fails but works with

it's
name.

Are you absolutely sure there's only one chartobject, eg you didn't once
assume deleting all the rows it's in would delete it.
In the immediate window (ctrl-g) type
?activesheet.chartobjects.count
and press enter

Regards,
Peter T

"Farooq Sheri" wrote in message
...
Thanks Peter for the detailed reply. There is no typo with the command
ActiveSheet.ChartObjects(1).Name = "chart 1" within my code.

At any given time there is only one chart on the sheet so it really

beats
me
why the command Worksheets(2).ChartObjects(1).Activate would not

activate
the chart (the sheet is already activated).

Although I am still struggling with it but thank you for your reply. I

will
try using the chart name as suggested by you
(Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name) and see

if I
can get the chart activated.

Regards
Farooq

"Peter T" wrote:

Comments in line -

"Farooq Sheri" wrote in

message
...
I have a embedded chart (there is only one chart) on a sheet. I

tried
naming
it with

ActivesSheet.ChartObjects(1).Name = "chart 1"

Question 1: did the above statement name the chart object or the

chart
contained within the chart object?

It should do if you amend the typo ActivesSheet to ActiveSheet and

no
other
chart on the sheet with that name (subject protection).

Using a macro I tried to activate the chart with the command

Worksheets(2).ChartObjects(1).Activate

this however did not activate the chart.

If however I change the command to

Worksheets(2).ChartObjects("Chart 75").Activate

the chart is activated ("Chart 75" is the name of the chart as it

appears
on
the top of the widow that pops up if you right click on the chart

and
select
Chart Window).

Not sure why ChartObjects(1) fails but ChartObjects("Chart 75")

works,
there's obviously at least one chartobject on the sheet.

This name (on the Chart Window) changes everytime the chart is
redrawn.

You mean each time you deleate & recreate a chart. The number will

increment
to the total number of objects that have 'ever' been added to the

sheet.
The
counter is only reset if the wb & sheet is saved with no objects.

Question 2: How can I select the chart on the desired sheet?

Need to activate the sheet first.

Question 3: Can I somehow extract the name as it appears on the

Chart
Window?

Activesheet.Chartobjects.Chart.Name returns 'sheetname chartname'

which
will
be prefixed with the sheetname (the chartwindow also includes

[wb-name]).
It's actual name though for referencing purposes is -
Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name

I do not know if it has anything to do with it, but the chart on

sheet
2
was
placed as a result of a comboBox_Change code. ComboBox is on sheet

1.

Not directly related

Regards,
Peter T









Farooq Sheri

Cannot activate a chart on a sheet
 
I am quite sure because each time before any data / chart was put on the
sheet cells.delete was used to delete the sheet of any previous data / chart.
I have used the command activesheet.chartobjects(1).activate previously and
it works but for some strange reasons it is not working here. This case is a
good one for head scratching. In fact just to test I copied the data from
this sheet onto another sheet and made a chart and the above command
activated the chart.

Thanks and regards.
Farooq


"Peter T" wrote:

Did you programmatically check how many chartobjects exit on the sheet.

Regards,
Peter T

"Farooq Sheri" wrote in message
...
Thanks Peter. I used the name as obtained from ActiveChart.Parent.Name to

get
the desired results.

Thanks a lot.

Farooq Sheri

"Peter T" wrote:

Sometimes it's necessary to deselect some other chart first,

particularly if
it's in a window. Also sometimes necessary to select the .Chart if it

was
selected as a chartobject. But if the current selection is say a cell I

have
no idea why referring to it by it's index number fails but works with

it's
name.

Are you absolutely sure there's only one chartobject, eg you didn't once
assume deleting all the rows it's in would delete it.
In the immediate window (ctrl-g) type
?activesheet.chartobjects.count
and press enter

Regards,
Peter T

"Farooq Sheri" wrote in message
...
Thanks Peter for the detailed reply. There is no typo with the command
ActiveSheet.ChartObjects(1).Name = "chart 1" within my code.

At any given time there is only one chart on the sheet so it really

beats
me
why the command Worksheets(2).ChartObjects(1).Activate would not

activate
the chart (the sheet is already activated).

Although I am still struggling with it but thank you for your reply. I
will
try using the chart name as suggested by you
(Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name) and see

if I
can get the chart activated.

Regards
Farooq

"Peter T" wrote:

Comments in line -

"Farooq Sheri" wrote in

message
...
I have a embedded chart (there is only one chart) on a sheet. I

tried
naming
it with

ActivesSheet.ChartObjects(1).Name = "chart 1"

Question 1: did the above statement name the chart object or the

chart
contained within the chart object?

It should do if you amend the typo ActivesSheet to ActiveSheet and

no
other
chart on the sheet with that name (subject protection).

Using a macro I tried to activate the chart with the command

Worksheets(2).ChartObjects(1).Activate

this however did not activate the chart.

If however I change the command to

Worksheets(2).ChartObjects("Chart 75").Activate

the chart is activated ("Chart 75" is the name of the chart as it
appears
on
the top of the widow that pops up if you right click on the chart

and
select
Chart Window).

Not sure why ChartObjects(1) fails but ChartObjects("Chart 75")

works,
there's obviously at least one chartobject on the sheet.

This name (on the Chart Window) changes everytime the chart is
redrawn.

You mean each time you deleate & recreate a chart. The number will
increment
to the total number of objects that have 'ever' been added to the

sheet.
The
counter is only reset if the wb & sheet is saved with no objects.

Question 2: How can I select the chart on the desired sheet?

Need to activate the sheet first.

Question 3: Can I somehow extract the name as it appears on the

Chart
Window?

Activesheet.Chartobjects.Chart.Name returns 'sheetname chartname'

which
will
be prefixed with the sheetname (the chartwindow also includes
[wb-name]).
It's actual name though for referencing purposes is -
Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name

I do not know if it has anything to do with it, but the chart on

sheet
2
was
placed as a result of a comboBox_Change code. ComboBox is on sheet

1.

Not directly related

Regards,
Peter T










Peter T

Cannot activate a chart on a sheet
 
Sometimes the apparently impossible happens!

I suggested double checking with code to confirm you only have one
chartobject. If you have a (say hidden) chart named "Chart 1" it would
explain both why you cannot select ChartObjects("Chart 75") using the code
ChartObjects(1) and cannot rename it as "Chart 1".

It would only take a few seconds to test and 100% eliminate the impossible
possibility.

Regards,
Peter T

"Farooq Sheri" wrote in message
...
I am quite sure because each time before any data / chart was put on the
sheet cells.delete was used to delete the sheet of any previous data /

chart.
I have used the command activesheet.chartobjects(1).activate previously

and
it works but for some strange reasons it is not working here. This case is

a
good one for head scratching. In fact just to test I copied the data from
this sheet onto another sheet and made a chart and the above command
activated the chart.

Thanks and regards.
Farooq


"Peter T" wrote:

Did you programmatically check how many chartobjects exit on the sheet.

Regards,
Peter T

"Farooq Sheri" wrote in message
...
Thanks Peter. I used the name as obtained from ActiveChart.Parent.Name

to
get
the desired results.

Thanks a lot.

Farooq Sheri

"Peter T" wrote:

Sometimes it's necessary to deselect some other chart first,

particularly if
it's in a window. Also sometimes necessary to select the .Chart if

it
was
selected as a chartobject. But if the current selection is say a

cell I
have
no idea why referring to it by it's index number fails but works

with
it's
name.

Are you absolutely sure there's only one chartobject, eg you didn't

once
assume deleting all the rows it's in would delete it.
In the immediate window (ctrl-g) type
?activesheet.chartobjects.count
and press enter

Regards,
Peter T

"Farooq Sheri" wrote in

message
...
Thanks Peter for the detailed reply. There is no typo with the

command
ActiveSheet.ChartObjects(1).Name = "chart 1" within my code.

At any given time there is only one chart on the sheet so it

really
beats
me
why the command Worksheets(2).ChartObjects(1).Activate would not

activate
the chart (the sheet is already activated).

Although I am still struggling with it but thank you for your

reply. I
will
try using the chart name as suggested by you
(Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name) and

see
if I
can get the chart activated.

Regards
Farooq

"Peter T" wrote:

Comments in line -

"Farooq Sheri" wrote in

message
...
I have a embedded chart (there is only one chart) on a sheet.

I
tried
naming
it with

ActivesSheet.ChartObjects(1).Name = "chart 1"

Question 1: did the above statement name the chart object or

the
chart
contained within the chart object?

It should do if you amend the typo ActivesSheet to ActiveSheet

and
no
other
chart on the sheet with that name (subject protection).

Using a macro I tried to activate the chart with the command

Worksheets(2).ChartObjects(1).Activate

this however did not activate the chart.

If however I change the command to

Worksheets(2).ChartObjects("Chart 75").Activate

the chart is activated ("Chart 75" is the name of the chart as

it
appears
on
the top of the widow that pops up if you right click on the

chart
and
select
Chart Window).

Not sure why ChartObjects(1) fails but ChartObjects("Chart 75")

works,
there's obviously at least one chartobject on the sheet.

This name (on the Chart Window) changes everytime the chart is
redrawn.

You mean each time you deleate & recreate a chart. The number

will
increment
to the total number of objects that have 'ever' been added to

the
sheet.
The
counter is only reset if the wb & sheet is saved with no

objects.

Question 2: How can I select the chart on the desired sheet?

Need to activate the sheet first.

Question 3: Can I somehow extract the name as it appears on

the
Chart
Window?

Activesheet.Chartobjects.Chart.Name returns 'sheetname

chartname'
which
will
be prefixed with the sheetname (the chartwindow also includes
[wb-name]).
It's actual name though for referencing purposes is -
Activesheet.Chartobjects(1).Name or ActiveChart.Parent.Name

I do not know if it has anything to do with it, but the chart

on
sheet
2
was
placed as a result of a comboBox_Change code. ComboBox is on

sheet
1.

Not directly related

Regards,
Peter T













All times are GMT +1. The time now is 03:04 PM.

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