ich suche einen Weg, den Namen eines Diagramms herauszufinden um es dann per VBA anzusprechen. Bis jetzt zeichne ich vorher immer erst ein Makro auf, um diesen Namen zu erhalten. Gibt es eine bessere Lösung?
Gruß Rainer
Sub DiagrammName()
Dim chaDiagram As ChartObject
For Each chaDiagram In ActiveSheet.ChartObjects
' Bei einem Diagramm würde es so gehen. Wenn es mehrere sind wirds schwierig,
' da EXCEL die Namen willkürlich festlegt und man diese nicht kennt.
' Da müßte man bei der Erstellung schon für eindeutige Namen sorgen.
MsgBox "Der VBA Name dieser Grafik ist => " & chaDiagram.Name, vbInformation
' So kann man dann auf das Diagramm zugreifen, hier die Hintergrundfarbe.
ActiveSheet.ChartObjects(chaDiagram.Name).Interior.ColorIndex = 1
Next
End Sub
Makro erstellen: Öffne Excel und gehe auf die Registerkarte "Entwicklertools". Klicke auf "Visual Basic", um den VBA-Editor zu öffnen.
Neues Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".
VBA-Code einfügen: Kopiere den folgenden VBA-Code und füge ihn in das neue Modul ein:
Sub DiagrammName()
Dim chaDiagram As ChartObject
For Each chaDiagram In ActiveSheet.ChartObjects
MsgBox "Der VBA Name dieser Grafik ist => " & chaDiagram.Name, vbInformation
' Beispiel für Zugriff auf das Diagramm
ActiveSheet.ChartObjects(chaDiagram.Name).Interior.ColorIndex = 1
Next
End Sub
Makro ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Wähle das Makro "DiagrammName" aus und klicke auf "Ausführen". Du erhältst eine Mitteilung mit dem Namen des Diagramms.
Problem: Das Makro gibt keine Namen aus.
Problem: Bei mehreren Diagrammen werden nicht die richtigen Namen angezeigt.
Eine weitere Möglichkeit, den Namen eines Diagramms herauszufinden, ist die Verwendung des Direktfensters:
Strg + G
.?ActiveChart.Name
ein und drücke Enter
. Der Name des Diagramms wird im Direktfenster angezeigt.Wenn du den VBA-Namen eines Diagramms benötigst, um weitere Eigenschaften zu ändern, kannst du den Namen auch direkt in deinen Code einfügen:
Sub HintergrundfarbeÄndern()
ActiveSheet.ChartObjects("Diagramm 1").Interior.ColorIndex = 3 ' Rot
End Sub
Hierbei wird angenommen, dass dein Diagramm den Namen "Diagramm 1" hat.
1. Wie kann ich sicherstellen, dass meine Diagramme immer eindeutige Namen haben?
Du kannst beim Erstellen von Diagrammen in VBA den Namen explizit festlegen, um Konflikte zu vermeiden.
2. Funktioniert dieser VBA-Code in allen Excel-Versionen?
Ja, der Code sollte in allen aktuellen Excel-Versionen ab Excel 2007 funktionieren, solange du den VBA-Editor verwenden kannst.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen