Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datenbereich für Diagramm variabel gestalten

Datenbereich für Diagramm variabel gestalten
25.10.2004 09:42:14
Alex
Hallo,
ich habe ein Diagramm erstellt und das als Makro aufgezeichnet und nun möchte ich gerne den Bereich für die einzelnen Werte variabel gestalten.
Der Teil für den Datenberich sieht folgendermaßen aus:
Charts.Add
' ActiveChart.ChartType = xlColumnStacked
' ActiveChart.SetSourceData Source:=Sheets("Wochenbericht TKF").Range("L129")
' ActiveChart.SeriesCollection.NewSeries
' ActiveChart.SeriesCollection.NewSeries
' ActiveChart.SeriesCollection.NewSeries
' ActiveChart.SeriesCollection.NewSeries
' ActiveChart.SeriesCollection.NewSeries
' ActiveChart.SeriesCollection.NewSeries
' ActiveChart.SeriesCollection.NewSeries
' ActiveChart.SeriesCollection(1).XValues = "='Wochenbericht TKF'!R58C2:R64C2"
' ActiveChart.SeriesCollection(1).Values = "='Wochenbericht TKF'!R58C3:R64C3"
' ActiveChart.SeriesCollection(1).Name = "='Wochenbericht TKF'!R1C3"
' ActiveChart.SeriesCollection(2).Values = "='Wochenbericht TKF'!R58C4:R64C4"
' ActiveChart.SeriesCollection(2).Name = "='Wochenbericht TKF'!R1C4"
' ActiveChart.SeriesCollection(3).Values = "='Wochenbericht TKF'!R58C5:R64C5"
' ActiveChart.SeriesCollection(3).Name = "='Wochenbericht TKF'!R1C5"
' ActiveChart.SeriesCollection(4).Values = "='Wochenbericht TKF'!R58C6:R64C6"
' ActiveChart.SeriesCollection(4).Name = "='Wochenbericht TKF'!R1C6"
' ActiveChart.SeriesCollection(5).Values = "='Wochenbericht TKF'!R58C7:R64C7"
' ActiveChart.SeriesCollection(5).Name = "='Wochenbericht TKF'!R1C7"
' ActiveChart.SeriesCollection(6).Values = "='Wochenbericht TKF'!R58C8:R64C8"
' ActiveChart.SeriesCollection(6).Name = "='Wochenbericht TKF'!R1C8"
' ActiveChart.SeriesCollection(7).Values = "='Wochenbericht TKF'!R58C9:R64C9"
' ActiveChart.SeriesCollection(7).Name = "='Wochenbericht TKF'!R1C9"
' ActiveChart.Location Where:=xlLocationAsObject, Name:="Wochenbericht TKF"
Kann mir jemand einen Tipp geben?
Gruß
Alex
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenbereich für Diagramm variabel gestalten
Beni
Hallo Alex,
was meinst Du mit variabel, in diesem Beispiel werden die Daten von Zeile58 bis letzte Zeile angezeigt.
Gruss Beni

Sub TKF_Dia89()
With Sheets("Wochenbericht TKF")
lz = .Cells(65536, 3).End(xlUp).Row
Charts.Add
ActiveChart.ChartType = xlColumnStacked
ActiveChart.SetSourceData Source:=Sheets("Wochenbericht TKF").Range("L129")
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = Range(.Cells(58, 2), .Cells(lz, 2))
ActiveChart.SeriesCollection(1).Values = Range(.Cells(58, 3), .Cells(lz, 3))
ActiveChart.SeriesCollection(1).Name = .Cells(1, 3)
ActiveChart.SeriesCollection(2).Values = Range(.Cells(58, 4), .Cells(lz, 4))
ActiveChart.SeriesCollection(2).Name = .Cells(1, 4)
ActiveChart.SeriesCollection(3).Values = Range(.Cells(58, 5), .Cells(lz, 5))
ActiveChart.SeriesCollection(3).Name = .Cells(1, 5)
ActiveChart.SeriesCollection(4).Values = Range(.Cells(58, 6), .Cells(lz, 6))
ActiveChart.SeriesCollection(4).Name = .Cells(1, 6)
ActiveChart.SeriesCollection(5).Values = Range(.Cells(58, 7), .Cells(lz, 7))
ActiveChart.SeriesCollection(5).Name = .Cells(1, 7)
ActiveChart.SeriesCollection(6).Values = Range(.Cells(58, 8), .Cells(lz, 8))
ActiveChart.SeriesCollection(6).Name = .Cells(1, 8)
ActiveChart.SeriesCollection(7).Values = Range(.Cells(58, 9), .Cells(lz, 9))
ActiveChart.SeriesCollection(7).Name = .Cells(1, 9)
ActiveChart.Location Where:=xlLocationAsObject, Name:="Wochenbericht TKF"
End With
End Sub

Anzeige
AW: Datenbereich für Diagramm variabel gestalten
26.10.2004 08:30:28
Alex
Schönen Dank Beni,
genau das habe ich gemeint. Funktioniert jetzt einwandfrei.
;
Anzeige
Anzeige

Infobox / Tutorial

Datenbereich für Diagramm variabel gestalten


Schritt-für-Schritt-Anleitung

Um den Datenbereich für ein Diagramm in Excel VBA variabel zu gestalten, kannst du folgende Schritte befolgen:

  1. Öffne den VBA-Editor (mit ALT + F11).

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject (deineDatei.xlsx)" > Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Sub TKF_Dia89()
       With Sheets("Wochenbericht TKF")
           lz = .Cells(65536, 3).End(xlUp).Row
           Charts.Add
           ActiveChart.ChartType = xlColumnStacked
           ActiveChart.SetSourceData Source:=Sheets("Wochenbericht TKF").Range("L129")
           For i = 1 To 7
               ActiveChart.SeriesCollection.NewSeries
               ActiveChart.SeriesCollection(i).XValues = Range(.Cells(58, 2), .Cells(lz, 2))
               ActiveChart.SeriesCollection(i).Values = Range(.Cells(58, i + 2), .Cells(lz, i + 2))
               ActiveChart.SeriesCollection(i).Name = .Cells(1, i + 2)
           Next i
           ActiveChart.Location Where:=xlLocationAsObject, Name:="Wochenbericht TKF"
       End With
    End Sub
  4. Führe das Makro aus, um das Diagramm mit variablen Datenbereichen zu erstellen.


Häufige Fehler und Lösungen

  • Fehler: "Die angegebene Zelle wurde nicht gefunden."

    • Lösung: Überprüfe, ob der Tabellenname und die Zellenreferenzen korrekt sind.
  • Fehler: "Das Diagramm kann nicht erstellt werden."

    • Lösung: Stelle sicher, dass genügend Daten in den angegebenen Zellen vorhanden sind.

Alternative Methoden

Du kannst auch die .FullSeriesCollection verwenden, um auf die einzelnen Datenreihen zuzugreifen. Hier ein Beispiel:

ActiveChart.FullSeriesCollection(1).XValues = Range(.Cells(58, 2), .Cells(lz, 2))
ActiveChart.FullSeriesCollection(1).Values = Range(.Cells(58, 3), .Cells(lz, 3))

Diese Methode gibt dir mehr Kontrolle über die Diagrammserien und ist besonders nützlich, wenn du mehrere Diagrammtypen kombinieren möchtest, wie z.B. ein Balkendiagramm und ein Liniendiagramm.


Praktische Beispiele

Wenn du ein Liniendiagramm erstellen möchtest, kannst du den Code wie folgt anpassen:

ActiveChart.ChartType = xlLine

Oder für ein Balkendiagramm:

ActiveChart.ChartType = xlBarClustered

Du kannst die Diagrammtypen in der ActiveChart.ChartType-Zeile ändern, um unterschiedliche Grafiken zu gestalten.


Tipps für Profis

  • Nutze die .SeriesCollection statt .FullSeriesCollection, wenn du mit weniger Datenreihen arbeitest. Das kann die Performance verbessern.
  • Experimentiere mit verschiedenen Diagrammtypen, um die visuelle Darstellung deiner Daten zu optimieren.
  • Verwende die ActiveChart-Eigenschaft, um auf das aktuell aktive Diagramm zuzugreifen und Änderungen vorzunehmen.

FAQ: Häufige Fragen

1. Wie kann ich den Datenbereich dynamisch anpassen? Du kannst die letzte Zeile mit .End(xlUp).Row ermitteln, um sicherzustellen, dass nur die vorhandenen Daten verwendet werden.

2. Was ist der Unterschied zwischen .SeriesCollection und .FullSeriesCollection? .SeriesCollection bezieht sich auf die sichtbaren Datenreihen im Diagramm, während .FullSeriesCollection alle Datenreihen, auch die versteckten, umfasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige