getting the active chart/chartobject's name

S

Stanley

Given the code below, does anyone have any suggestions on how to
obtain the active chart/chartobject's name so that I can address
Shape(name) properly when I try ot move the shape?

Code:
Sub LT(wbname As String, wsname As String)   ' Graphing Lifetime
Results
Dim normalgraph As Chart                ' normal graph variable
Dim regressgraph As Chart               ' regression graph
variable
Dim twoGraphs As ChartObjects              'Chartobjects for
embedded charts

Dim ngName As String                'normal graph name for moving
the chart
Dim rgName As String                'regression graph name for
moving the chart

Dim i As Long                           ' loop counter
Dim colEnd As Long                         ' end of a column

Workbooks(wbname).Sheets(wsname).Activate       'activate
worksheet of interest

Let colEnd = Range("c2").End(xlDown).Row

' Select data range
Range(Cells(2, 2), Cells(colEnd, 6)).Select

' insert new graph for showing Fuel cell voltage, flow,
temperature,
' and fuel cell current
Set normalgraph = Charts.Add
Set normalgraph = normalgraph.Location(where:=xlLocationAsObject,
Name:=wsname)
ngName = normalgraph.Name

'more code

Thanks!
 
B

brittonsm

How about this?


With .ActiveWorkbook
.Sheets("Sheet1").Select
.ActiveSheet.ChartObjects("Chart 1").Activate
.ActiveChart.ChartArea.Copy
End With
 
S

Stanley

How about this?

With .ActiveWorkbook
.Sheets("Sheet1").Select
.ActiveSheet.ChartObjects("Chart 1").Activate
.ActiveChart.ChartArea.Copy
End With

Given the code below, does anyone have any suggestions on how to
obtain the active chart/chartobject's name so that I can address
Shape(name) properly when I try ot move the shape?
Code:
Sub LT(wbname As String, wsname As String)   ' Graphing Lifetime
Results
Dim normalgraph As Chart                ' normal graph variable
Dim regressgraph As Chart               ' regression graph
variable
Dim twoGraphs As ChartObjects              'Chartobjects for
embedded charts[/QUOTE]
[QUOTE]
Dim ngName As String                'normal graph name for moving
the chart
Dim rgName As String                'regression graph name for
moving the chart[/QUOTE]
[QUOTE]
Dim i As Long                           ' loop counter
Dim colEnd As Long                         ' end of a column[/QUOTE]
[QUOTE]
Workbooks(wbname).Sheets(wsname).Activate       'activate
worksheet of interest[/QUOTE]
[QUOTE]
Let colEnd = Range("c2").End(xlDown).Row[/QUOTE]
[QUOTE]
' Select data range
Range(Cells(2, 2), Cells(colEnd, 6)).Select[/QUOTE]
[QUOTE]
' insert new graph for showing Fuel cell voltage, flow,
temperature,
' and fuel cell current
Set normalgraph = Charts.Add
Set normalgraph = normalgraph.Location(where:=xlLocationAsObject,
Name:=wsname)
ngName = normalgraph.Name[/QUOTE]
[QUOTE]
'more code

The problem is that I don't know for certain the name inside the
chartobjects() identifier or shapes() identifier.
 
P

Peter T

after this line
ngName = normalgraph.Name
add
sChtObjName = normalgraph.Parent.Name

If all you want to do is move it with in the same routine as you created it,
simply

With normalgraph.Parent
..Left = 10
..Top = 20
' .width & .height if necessary
End With

However, no need to first add a chart sheet, add the chartobject to the
requisite sheet, sized to suit, eg

Sub test2()
Dim chtObj As ChartObject
Dim cht As Chart
Dim cell As Range

Set cell = ActiveSheet.Range("B3")

With cell
Set chtObj = ActiveSheet.ChartObjects.Add(.Left, .Top, 300, 200)
End With

Set cht = chtObj.Chart

With cht
' build the chart

End With

End Sub

Regards,
Peter T

Stanley said:
Given the code below, does anyone have any suggestions on how to
obtain the active chart/chartobject's name so that I can address
Shape(name) properly when I try ot move the shape?

Code:
Sub LT(wbname As String, wsname As String)   ' Graphing Lifetime
Results
Dim normalgraph As Chart                ' normal graph variable
Dim regressgraph As Chart               ' regression graph
variable
Dim twoGraphs As ChartObjects              'Chartobjects for
embedded charts

Dim ngName As String                'normal graph name for moving
the chart
Dim rgName As String                'regression graph name for
moving the chart

Dim i As Long                           ' loop counter
Dim colEnd As Long                         ' end of a column

Workbooks(wbname).Sheets(wsname).Activate       'activate
worksheet of interest

Let colEnd = Range("c2").End(xlDown).Row

' Select data range
Range(Cells(2, 2), Cells(colEnd, 6)).Select

' insert new graph for showing Fuel cell voltage, flow,
temperature,
' and fuel cell current
Set normalgraph = Charts.Add
Set normalgraph = normalgraph.Location(where:=xlLocationAsObject,
Name:=wsname)
ngName = normalgraph.Name

'more code

Thanks!
 
A

Andy Pope

Hi,

Try this code,

'----------
Set normalgraph = Charts.Add
Set normalgraph = _
normalgraph.Location(where:=xlLocationAsObject, Name:=wsname)

With Worksheets(wsname)
Set normalgraph = .ChartObjects(.ChartObjects.Count).Chart
End With
ngName = normalgraph.Parent.Name
'----------

Cheers
Andy
 

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