Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Diagramm in Diagrammblatt ansprechen

Diagramm in Diagrammblatt ansprechen
09.02.2018 13:11:50
Martin
Hallo zusammen,
ich versuche verzweifelt den Datenbereich eines Diagramms in einem Diagrammblatt zu ändern.
Folgende Codes habe ich bisher ausprobiert:
Variante A:
Diagrammname = "MeinDiagramm"
With Sheets(Diagrammname).ChartObjects(Diagrammname)
.SetSourceData Source:=Range(Cells(3, 2), Cells(Zeile, Spalte))
End With
Variante B:
Diagrammname = "MeinDiagramm"
Sheets(Diagrammname).Select
ActiveChart.SetSourceData Source:=Range(Cells(3, 2), Cells(Zeile, Spalte))
Variante C:
Diagrammname = "MeinDiagramm"
With Worksheets(Diagrammname)
Set chDiagramm = .ChartObjects(Diagrammname).Chart
chDiagramm.SetSourceData Source:=Range(Cells(3, 2), Cells(Zeile, Spalte))
End With
Keine Variante funktioniert. Kann mir jemand helfen?
Der Diagrammname und das Tabellenblatt sind laut Excel identisch..."Zeile" und "Spalte" wird vorher ermittelt.
Vielen Dank und viele Grüße
Martin
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm in Diagrammblatt ansprechen
09.02.2018 13:39:27
ChrisL
Hi Martin
Ohne Beispieldatei und Fehlermeldung ist es Kaffeesatzlesen. Ich vermute ein Referenzierungsproblem.
Diagrammname = "MeinDiagramm"
With Sheets("Tabelle1")
Sheets(Diagrammname).ChartObjects(Diagrammname).SetSourceData _
Source:=.Range(.Cells(3, 2), .Cells(Zeile, Spalte))
End With
cu Chris
Anzeige
AW: Diagramm in Diagrammblatt ansprechen
09.02.2018 13:41:21
Burak
So sieht das bei mir aus:
ActiveChart.SetSourceData Source:=Range("'Linienauswertung'!$A$1:$D$6")
Musst nur Tabellennamen und den Rangebereich anpassen
AW: Diagramm in Diagrammblatt ansprechen
09.02.2018 14:04:27
Martin
Hallo Burak,
danke für die Antwort. Es funktioniert...nur wie bekomme ich nun die Variablen "Zeile" und "Spalte" dort eingebunden?
Viele Grüße
Martin
Anzeige
AW: Diagramm in Diagrammblatt ansprechen
09.02.2018 14:24:53
Burak
das müsste dann in etwa so aussehen:
ActiveChart.SetSourceData Source:=Range("'Linienauswertung'!$" & Spalte & "$" & Zeile & ":$D$6")
Das funktioniert so wenn in der Variable Spalte ein Buchstabe steht und in der Variable Zeile eine Zahl
AW: Doppelpost
12.02.2018 08:45:06
Martin
Ja, sorry. Ich hatte es nochmal reingestellt, da ich nicht wusste, ob meine zusätliche Frage noch als "offene Frage" erscheint.
Deine Lösung funktioniert wunderbar. Danke!
;
Anzeige
Anzeige

Infobox / Tutorial

Diagramm in Diagrammblatt ansprechen


Schritt-für-Schritt-Anleitung

Um ein Diagramm in einem Diagrammblatt in Excel VBA anzusprechen, kannst Du folgende Schritte befolgen:

  1. Diagrammname definieren: Bestimme den Namen Deines Diagramms.

    Diagrammname = "MeinDiagramm"
  2. Datenbereich festlegen: Verwende die SetSourceData-Methode, um den Datenbereich des Diagramms zu ändern. Hier sind einige Varianten:

    • Variante A:
      With Sheets(Diagrammname).ChartObjects(Diagrammname)
       .SetSourceData Source:=Range(Cells(3, 2), Cells(Zeile, Spalte))
      End With
    • Variante B:
      Sheets(Diagrammname).Select
      ActiveChart.SetSourceData Source:=Range(Cells(3, 2), Cells(Zeile, Spalte))
    • Variante C:
      With Worksheets(Diagrammname)
       Set chDiagramm = .ChartObjects(Diagrammname).Chart
       chDiagramm.SetSourceData Source:=Range(Cells(3, 2), Cells(Zeile, Spalte))
      End With
  3. Überprüfen: Achte darauf, dass der Diagrammname und das Tabellenblatt korrekt sind und dass die Variablen "Zeile" und "Spalte" vorher definiert wurden.


Häufige Fehler und Lösungen

  • Fehler: Diagramm wird nicht gefunden.

    • Lösung: Stelle sicher, dass der Diagrammname und das Diagrammblatt korrekt sind. Der Code sollte das Diagrammblatt explizit ansprechen.
  • Fehler: Referenzierungsproblem.

    • Lösung: Verwende den vollständigen Pfad zur Tabelle. Beispiel:
      With Sheets("Tabelle1")
      .ChartObjects(Diagrammname).SetSourceData Source:=.Range(.Cells(3, 2), .Cells(Zeile, Spalte))
      End With
  • Fehler: Ungültiger Datenbereich.

    • Lösung: Achte darauf, dass der Range-Bereich gültig ist. Du kannst die Variablen "Zeile" und "Spalte" so einfügen:
      ActiveChart.SetSourceData Source:=Range("'Tabellenname'!" & Spalte & Zeile)

Alternative Methoden

Wenn Du Schwierigkeiten hast, das Diagramm mit VBA anzusprechen, kannst Du auch das Benutzerinterface von Excel verwenden:

  1. Klicke mit der rechten Maustaste auf das Diagramm und wähle "Daten auswählen".
  2. Ändere den Datenbereich manuell im sich öffnenden Dialogfeld.

Diese Methode ist einfach, wenn Du nicht mit VBA arbeiten möchtest.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie Du ein Diagramm in einem Diagrammblatt ansprechen kannst:

  1. Datenbereich mit Variablen anpassen:

    Dim Zeile As Long
    Dim Spalte As String
    Zeile = 6 ' Beispielwert
    Spalte = "D" ' Beispielwert
    ActiveChart.SetSourceData Source:=Range("'Linienauswertung'!" & Spalte & Zeile & ":$D$" & Zeile)
  2. Diagramm mit festem Datenbereich:

    ActiveChart.SetSourceData Source:=Range("'Linienauswertung'!$A$1:$D$6")

Diese Beispiele setzen voraus, dass Du Excel VBA Versionen 2010 oder höher verwendest.


Tipps für Profis

  • Verwende Option Explicit: Damit stellst Du sicher, dass alle Variablen deklariert sind und vermeidest häufige Fehler.
  • Nutze Fehlerbehandlung: Implementiere On Error Resume Next, um Fehler abzufangen und weiterzuarbeiten.
  • Verwende benannte Bereiche: Dies erleichtert das Ansprechen von Datenbereichen in Deinen Diagrammen.

FAQ: Häufige Fragen

1. Wie kann ich den Namen eines Diagramms herausfinden? Du kannst den Namen eines Diagramms herausfinden, indem Du das Diagramm auswählst und in der Formelleiste nachsiehst. Der Diagrammname ist in der Regel oben links in der Formelleiste angezeigt.

2. Welche Excel-Version benötige ich für die Verwendung von VBA? VBA ist in Excel-Versionen 2007 und höher verfügbar. Es wird jedoch empfohlen, eine neuere Version zu verwenden, um die besten Funktionen und Sicherheitsupdates zu erhalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige