Ich habe eine Mappe mit mehreren Blättern. In jedem Blatt sind
genau zwei Diagramme, deren Nummer ich nicht kenne, da in
jedem Blatt anders. Mit einem Makro, der für alle Blätter
gleich ist, bearbeite ich die Diagramme. Je nach dem, in
welchem Blatt ich bin, muss ich also die Nummer ermitteln:
ActiveSheet.ChartObjects("Chart " &
).Activate
muss ich also ermitteln.
Hallo Laika,
Kann ich das?
ja, mitm richtigen Code Nachstehend der Code der demonstriert wie du da an die Nummer kommst. Aber die brauchst du doch m.E. nicht.
Schreib bitte anstatt
ActiveSheet.ChartObjects("Chart " & )
besser
ActiveSheet.ChartObjects(1)
bzw.
ActiveSheet.ChartObjects(2)
Grundsätzlich empfehle ich dir das Namenschaos zu beseitigen. Benenne in jedem Blatt das linke Chart als „Diag1“, das rechte Chart als „Diag2“ o.ä.
Stehen sie untereinander dann analog zu oben und unten.
Kannst auch den Blattnamen mit in den Diagrammnamen basteln, „Tab010Diag1“ usw.
Mache dafür eine neue Anfrage hier auf.
Gruß
Reinhard
Was du mit Nummer meinst gehört zum Namen des Charts.
Wenn du in einem neuen Blatt 10 Charts erstellst so benennt die Excel wahrscheinlich ,„Chart 1“, „Chart 2“, „Chart 3“ usw. bis ,„Chart 10“
Löschst du jetzt wahllos acht Stück bleiben ggfs. nur „Chart 4“ und „Chart 7“ übrig.
Sub tt()
Dim Nummer1, Nummer2
With Tabelle1
MsgBox .ChartObjects(1).Name
MsgBox .ChartObjects(2).Name
Nummer1 = Replace(.ChartObjects(1).Name, "Chart ", "")
Nummer2 = Replace(.ChartObjects(2).Name, "Chart ", "")
MsgBox Nummer1
MsgBox Nummer2
End With
End Sub