getting the active chart/chartobject's name

  • Thread starter Thread starter Stanley
  • Start date Start date
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!
 
How about this?


With .ActiveWorkbook
.Sheets("Sheet1").Select
.ActiveSheet.ChartObjects("Chart 1").Activate
.ActiveChart.ChartArea.Copy
End With
 
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.
 
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!
 
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
 
Back
Top