Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1512to1516
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Diagramm - mit variabler letzter Zeile

Diagramm - mit variabler letzter Zeile
20.09.2016 13:49:27
linda
Hallo ihr Lieben!
Ich habe eine Frage zu der Ausgabe von Diagramm-Werten. Die Diagramme, die ich auf mein Tabellenblatt "Auswertung" einfüge, beziehen ihre Daten aus der gleichen Excel-Mappe, jedoch aus unterschiedlichen Tabellenblättern. Derzeit habe ich die Daten statisch aufgenommen, jedoch muss das unbedingt dynamisch funktionieren, da die Datensätze variieren. Ich habe 4 Diagramme, die ca. 10 verschiedene Graphen in unterschiedlicher Kombination zeigen.
Hier ein Ausschnitt aus meinem jetzigen Code für EIN Diagramm:
'Diagramm einfügen
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
'Datenreihen einfügen und Farben zuweisen
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(1).Name = "=""Kurve1"""
ActiveChart.FullSeriesCollection(1).XValues = "='AKurve'!$A$2:$A$464"
ActiveChart.FullSeriesCollection(1).Values = "='AKurve'!$H$2:$H$464"
ActiveChart.FullSeriesCollection(1).Border.Color = RGB(153, 204, 0)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(2).Name = "=""Kurve2"""
ActiveChart.FullSeriesCollection(2).XValues = "='BKurve'!$A$2:$A$465"
ActiveChart.FullSeriesCollection(2).Values = "='BKurve'!$H$2:$H$465"
ActiveChart.FullSeriesCollection(2).Border.Color = RGB(51, 102, 255)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(3).Name = "=""Kurve3"""
ActiveChart.FullSeriesCollection(3).XValues = "='BKurve'!$A$2:$A$465"
ActiveChart.FullSeriesCollection(3).Values = "='BKurve'!$M$2:$M$465"
ActiveChart.FullSeriesCollection(3).Border.Color = RGB(128, 128, 128)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(4).Name = "=""W-Signal"""
ActiveChart.FullSeriesCollection(4).XValues = "='BKurve'!$A$2:$A$465"
ActiveChart.FullSeriesCollection(4).Values = "='BKurve'!$Q$2:$Q$465"
ActiveChart.FullSeriesCollection(4).Border.Color = RGB(255, 102, 0)
ActiveChart.SeriesCollection.NewSeries
ActiveChart.FullSeriesCollection(5).Name = "=""F-Signal"""
ActiveChart.FullSeriesCollection(5).XValues = "='BKurve'!$A$2:$A$465"
ActiveChart.FullSeriesCollection(5).Values = "='BKurve'!$R$2:$R$465"
ActiveChart.FullSeriesCollection(5).Border.Color = RGB(153, 51, 0)
Die fett-markierten Zeilen, muss ich dynamisch gestalten, d.h. die letzte Zeile muss ermittelt werden und das Diagramm bis dahin die Daten wiedergeben. Das Problem an der Sache ist, das ich zwei verschiedene Tabellenblätter habe (AKurve und BKurve). Ich habe es mit:
ActiveChart.FullSeriesCollection(5).XValues = sheets("AKurve").Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row)
versucht, aber das funktioniert nicht. Hat jemand noch eine Idee, wie ich das umsetzen kann?
Bin für jede Hilfe dankebar =).
Liebe Grüße
Linda

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm - mit variabler letzter Zeile
20.09.2016 19:54:55
Bastian
Hey Ho also man könnte das so machen aber is schon sehr verwirrend =D
Gruß Basti

Sub Blaaa()
Dim arr
Dim arr1
Dim arr2
arr = Array("Kurve1", "Kurve2", "Kurve3", "W-Signal", "F-Signal")
arr1 = Array("A", "B", "B", "B", "B")
arr2 = Array("H", "H", "M", "Q", "R")
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
With ActiveChart
For i = LBound(arr1) To UBound(arr1)
LastA = Worksheets(arr1(i) & "Kurve").Cells(1048576, "A").End(xlUp).Row
LastB = Worksheets(arr1(i) & "Kurve").Cells(1048576, arr2(i)).End(xlUp).Row
.SeriesCollection.NewSeries
.FullSeriesCollection(i + 1).Name = "=" & """" & arr(i) & """"
.FullSeriesCollection(i + 1).XValues = "='" & arr1(i) & "Kurve'!$A$2:$A$" & LastA
.FullSeriesCollection(i + 1).Values = "='" & arr1(i) & "Kurve'!$" & arr2(i) & "$2:$" &  _
arr2(i) & "$" & LastB
Next
End With
End Sub

Anzeige
AW: Diagramm - mit variabler letzter Zeile
21.09.2016 10:53:21
linda
Hallo Basti!
Super, dass du das so kannst =). Vielen Dank auch dir für deine Hilfe. Ich werde jedoch den Code von Beverly einbauen, da ich den versteh - hahaha! Aber, nichtsdestotrotz, danke für deine Zeit. Und wenn ich mal wieder bisschen mehr Zeit habe, dann versuche ich deinen Code zu verstehen =). Das mit den "Array"s habe ich noch nicht gecheckt...
Liebe Grüße
Linda
AW: Diagramm - mit variabler letzter Zeile
20.09.2016 20:08:02
Beverly
Hi Linda,
Dim lngAKurve As Long
Dim lngBKurve As Long
Dim wksA As Worksheet
Dim wksB As Worksheet
Set wksA = Worksheets("AKurve")
Set wksB = Worksheets("BKurve")
With wksA
lngAKurve = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
End With
With wksB
lngBKurve = IIf(IsEmpty(.Cells(.Rows.Count, 1)), .Cells(.Rows.Count, 1).End(xlUp).Row, . _
Rows.Count)
End With
With ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Chart
'Datenreihen einfügen und Farben zuweisen
With .SeriesCollection.NewSeries
.Name = "Kurve1"
.XValues = wksA.Range(wksA.Cells(2, 1), wksA.Cells(lngAKurve, 1)) '"='AKurve'!$A$2:$A$ _
464"
.Values = wksA.Range(wksA.Cells(2, 8), wksA.Cells(lngAKurve, 8))  '"='AKurve'!$H$2:$H$ _
464"
.Border.Color = RGB(153, 204, 0)
End With
With .SeriesCollection.NewSeries
.Name = "Kurve2"
.XValues = wksB.Range(wksB.Cells(2, 1), wksB.Cells(lngBKurve, 1)) '"='BKurve'!$A$2:$A$ _
465"
.Values = wksB.Range(wksB.Cells(2, 8), wksB.Cells(lngBKurve, 8)) '"='BKurve'!$H$2:$H$ _
465"
.Border.Color = RGB(51, 102, 255)
End With
With .SeriesCollection.NewSeries
.Name = "Kurve3"
.XValues = wksB.Range(wksB.Cells(2, 1), wksB.Cells(lngBKurve, 1)) '"='BKurve'!$A$2:$A$ _
465"
.Values = wksB.Range(wksB.Cells(2, 13), wksB.Cells(lngBKurve, 13)) '"='BKurve'!$M$2:$M$ _
465"
.Border.Color = RGB(128, 128, 128)
End With
With .SeriesCollection.NewSeries
.Name = "W-Signal"
.XValues = wksB.Range(wksB.Cells(2, 1), wksB.Cells(lngBKurve, 1)) '"='BKurve'!$A$2:$A$ _
465"
.Values = wksB.Range(wksB.Cells(2, 17), wksB.Cells(lngBKurve, 17)) '"='BKurve'!$Q$2:$Q$ _
465"
.Border.Color = RGB(255, 102, 0)
End With
With .SeriesCollection.NewSeries
.Name = "F-Signal"
.XValues = wksB.Range(wksB.Cells(2, 1), wksB.Cells(lngBKurve, 1)) '"='BKurve'!$A$2:$A$ _
465"
.Values = wksB.Range(wksB.Cells(2, 18), wksB.Cells(lngBKurve, 18)) '"='BKurve'!$R$2:$R$ _
465"
.Border.Color = RGB(153, 51, 0)
End With
End With
Set wksA = Nothing
Set wksB = Nothing


Anzeige
AW: Diagramm - mit variabler letzter Zeile
21.09.2016 10:49:17
linda
Hallo Beverly!
Vielen Dank, funktioniert prima. Ich hatte am Anfang noch ein paar Probleme die Legende und Beschriftung einzufügen, aber jetzt läuft es super. Vielen Dank!
Liebe Grüße
Linda

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige