VBA-Syntax zur Festlegung von Diagrammname

06/10/2007 - 11:27 von Frank Vellner | Report spam
Liebe Gruppe,

wie kann ich den Namen eines neu generierten Diagramms festlegen?

Ich füge mit Charts.Add.Location Where:=xlLocationAsObject,
Name:="Tabelle4" ein neues Diagramm ein. Nun soll es gleich einen
bestimmten Namen bekommen. Mit ".name = " komme ich nicht weiter :-(

Falls es gelingen sollte, den Namen "otto" festzulegen, soll es so
aussehen:

Charts.Add.Location Where:=xlLocationAsObject, Name:="Tabelle4"

'Versuche wie
'Charts.Name:="otto"
'ActiveChart.Name = "otto"
'ActiveChart.Shapes. ...
'usw. funktionieren nicht wenns klappt soll's so weitergehen:
(Verbesserungen Wilkommen ;-)

ActiveSheet.Shapes("otto").Select
With Selection
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = 387#
.ShapeRange.Width = 680.25
.Placement = xlFreeFloating
.PrintObject = True
End With

ActiveSheet.ChartObjects("otto").Activate
With ActiveChart
.ApplyCustomType ChartType:=xlUserDefined, TypeName:= _
"2_Achsen_Linien_2"
.HasPivotFields = False
.ChartArea.AutoScaleFont = False
.ChartArea.Font.Size = 10
.ChartTitle.Text = "=Pivot!R5C2"
.ChartTitle.AutoScaleFont = False
.ChartTitle.Font.Size = 16
.ChartTitle.Font.Bold = True
.Axes(xlValue).AxisTitle.Text = "=Pivot!R7C2"
.Axes(xlValue).AxisTitle.Font.Bold = True
.Axes(xlValue, xlSecondary).AxisTitle.Text = "=Pivot!R8C2"
.Axes(xlValue, xlSecondary).AxisTitle.Font.Bold = True
.Axes (xlCategory).TickLabels.Orientation = 45

End With

Viele Grüße
Frank
 

Lesen sie die antworten

#1 Beverly
06/10/2007 - 20:39 | Warnen spam
Hi Frank,

versuche es so:

ActiveSheet.ChartObjects(ActiveSheet.ChartObjects.Count).Name = "Otto"

Eigentlich ist es aber einfacher, ein Diagramm direkt als Objekt
anzusprechen. Ich habe mal versucht, deinen Code daraufhin anzupassen. Da ich
aber den Aufbau deiner Arbeitsmappe nicht kenne, ist dies schwierig, und ich
habe hier auche keine Pivottabelle zur Verfügung, sodass ich den Code nur auf
Basis einer normalen Wertetabelle erstellen konnte. Die auskommentierten
Codeteile funktionieren deshalb bei mir nicht. Evtl. kannst du den
Beispielcode ja an deine Bedingungen anpassen.

Sub diagramm()
Dim chDiagramm As ChartObject
Set chDiagramm = Worksheets("Tabelle4").ChartObjects.Add(50, 100,
680.25, 387)
With chDiagramm
.Name = "Hallo"
.ShapeRange.LockAspectRatio = msoFalse
.Placement = xlFreeFloating
.PrintObject = True
With .Chart
' .HasPivotFields = False
.SetSourceData Source:=Sheets("Tabelle4").Range("A1:B7"), PlotBy _
:=xlColumns
.ApplyCustomType ChartType:=xlUserDefined, TypeName:= _
"2_Achsen_Linien_2"
.HasTitle = True
With .ChartTitle
.Text = "=Tabelle4!R1C1"
' .Text = "=Pivot!R5C2"
.AutoScaleFont = False
.Font.Size = 16
.Font.Bold = True
End With
With .Axes(xlValue)
.HasTitle = True
.AxisTitle.Text = "=Tabelle4!R1C2"
' .Axes(xlValue).AxisTitle.Text = "=Pivot!R7C2"
.AxisTitle.Font.Bold = True
End With
With .Axes(xlValue, xlSecondary)
.HasTitle = True
.AxisTitle.Text = "=Tabelle4!R7C2"
' .AxisTitle.Text = "=Pivot!R8C2"
.AxisTitle.Font.Bold = True
End With
.Axes(xlCategory).TickLabels.Orientation = 45
End With
End With
End Sub

Bis spàter,
Karin

"Frank Vellner" wrote:

Liebe Gruppe,

wie kann ich den Namen eines neu generierten Diagramms festlegen?

Ich füge mit Charts.Add.Location Where:=xlLocationAsObject,
Name:="Tabelle4" ein neues Diagramm ein. Nun soll es gleich einen
bestimmten Namen bekommen. Mit ".name = " komme ich nicht weiter :-(

Falls es gelingen sollte, den Namen "otto" festzulegen, soll es so
aussehen:

Charts.Add.Location Where:=xlLocationAsObject, Name:="Tabelle4"

'Versuche wie
'Charts.Name:="otto"
'ActiveChart.Name = "otto"
'ActiveChart.Shapes. ...
'usw. funktionieren nicht wenns klappt soll's so weitergehen:
(Verbesserungen Wilkommen ;-)

ActiveSheet.Shapes("otto").Select
With Selection
.ShapeRange.LockAspectRatio = msoFalse
.ShapeRange.Height = 387#
.ShapeRange.Width = 680.25
.Placement = xlFreeFloating
.PrintObject = True
End With

ActiveSheet.ChartObjects("otto").Activate
With ActiveChart
.ApplyCustomType ChartType:=xlUserDefined, TypeName:= _
"2_Achsen_Linien_2"
.HasPivotFields = False
.ChartArea.AutoScaleFont = False
.ChartArea.Font.Size = 10
.ChartTitle.Text = "=Pivot!R5C2"
.ChartTitle.AutoScaleFont = False
.ChartTitle.Font.Size = 16
.ChartTitle.Font.Bold = True
.Axes(xlValue).AxisTitle.Text = "=Pivot!R7C2"
.Axes(xlValue).AxisTitle.Font.Bold = True
.Axes(xlValue, xlSecondary).AxisTitle.Text = "=Pivot!R8C2"
.Axes(xlValue, xlSecondary).AxisTitle.Font.Bold = True
.Axes (xlCategory).TickLabels.Orientation = 45

End With

Viele Grüße
Frank


Ähnliche fragen