Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
988to992
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
988to992
988to992
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

XY-Diagramm

XY-Diagramm
01.07.2008 10:13:24
Christoph
Hallo zusammmen
Bin leider der absolute neuling was VBA angeht und brauche unbedingt hilfe.
Ich möchte ein XY-Diagramm erstellen. Je nach eingabe sollen die Daten von einem anderen, neu erstellten Tabellenblatt mit dem Variablennamen MC geholt werden. Die schwierigkeit ist auch noch, dass die Länge der Datenreihe unterschiedlich sind.
Habe mir über diverse Seiten und dem Makro recorder einen Code zusammengezimmert. Nur leider kriege ich den einfach nicht zum laufen...
Laufzeitfahler 9 Index auserhalb des gültigen Bereichs
'Diagramm erstellen
ZeileMax = Sheets(MC).Range("A65536").End(xlUp).Row
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets(MC).Range(Sheets(MC).Cells(1, 24), Sheets(MC).Cells(ZeileMax, 28)), _
PlotBy:=xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "'MC" & "='!C24"
ActiveChart.SeriesCollection(1).Values = "'MC" & "='!C25"
ActiveChart.SeriesCollection(1).Name = "=""Spindelspiel X"""
ActiveChart.SeriesCollection(2).XValues = "'MC" & "='!C27"
ActiveChart.SeriesCollection(2).Values = "'MC" & "='!C28"
ActiveChart.SeriesCollection(2).Name = "=""Spindelspiel Z"""
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=("Diagramm" & MC)
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Spindelspiel"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Betriebsstunden"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Spindelspiel in um"
End With
Denke das Problem liegt bei den Values, denn wenn ich anstatt MC den Namen des Blattes hinschreibe funktioniert das Makro wie es soll.
Bin um jede Hilfe froh...vielen dank :)

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: XY-Diagramm
01.07.2008 11:23:00
Beverly
Hi Christoph,
versuche es so

ActiveChart.SeriesCollection(1).XValues = Worksheets(MC).Range("C24")




AW: XY-Diagramm
01.07.2008 11:32:19
Christoph
Hi Karin
Habe die formel wie beschrieben bei allen values eingesetzt. Kommt leider immer noch der gleiche Fehler...
Index ausserhalb des gültigen Bereichs.
Gruss

AW: XY-Diagramm
01.07.2008 12:51:56
Beverly
Hi Christoph,
es wäre günstig, wenn du deinen Tabellenauf etwas gnauer beschreibst, oder noch besser, du lädst die Arbeitsmappe mal hoch.


Anzeige
AW: XY-Diagramm
01.07.2008 11:41:00
Yusuf
Hi,
versuche es bitte einmal so:
ActiveChart.SeriesCollection(1).XValues = "'MC" & "='!R24C3:R24C3"
Gruß
Yusuf

AW: XY-Diagramm
01.07.2008 11:46:00
Christoph
Leider immer noch das selbe Problem...
Habe die variable MC als string definiert. Kann daher das Problem kommen?
Gruss

AW: XY-Diagramm
01.07.2008 11:57:51
Yusuf
Hi,
zweiter versuch
in MC steht der name des blattes?
Dann bitte nochmal so:
ActiveChart.SeriesCollection(1).XValues = "='" & MC & "'!R1C70:R1C81"
Gruß
Yusuf

AW: XY-Diagramm
01.07.2008 11:59:23
Yusuf
Hi,
sorry kleiner Fehler bitte so:
ActiveChart.SeriesCollection(1).XValues = "='" & MC & "'!R24C3:R24C3"

Anzeige
AW: XY-Diagramm
01.07.2008 13:46:00
Christoph
Hi Yusuf
Da scheint irgendwie der Wurm drin zu sein. Meldet mir immer noch: Index ausserhalb des Bereich.
Gehe ich richtig, dass R für Row und C für Spalte steht? Habe drum als Zeile eine Variable definiert, da ich nicht genau weiss vieviel Zeilen das Blatt hat.
Hier noch einmal der veränderte Code. Vieleicht bin ich auch einfach unfähig die Sache richtig einzugeben.
'Diagramm erstellen
ZeileMax = Sheets(MC).Range("A65536").End(xlUp).Row
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets(MC).Range(Sheets(MC).Cells(1, 24), Sheets(MC).Cells(ZeileMax, 28)), _
PlotBy:=xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='" & MC & "'!R24C3:R24C3"
ActiveChart.SeriesCollection(1).Values = "='" & MC & "'!R25C3:R25C3"
ActiveChart.SeriesCollection(1).Name = "=""Spindelspiel X"""
ActiveChart.SeriesCollection(2).XValues = "='" & MC & "'!R27C3:R27C3"
ActiveChart.SeriesCollection(2).Values = "='" & MC & "'!R28C3:R28C3"
ActiveChart.SeriesCollection(2).Name = "=""Spindelspiel Z"""
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=("Diagramm" & MC)
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Spindelspiel"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Betriebsstunden"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Spindelspiel in um"
End With
Gruss
Christoph

Anzeige
AW: XY-Diagramm
01.07.2008 14:14:00
Yusuf
Hi,
an welcher Stelle tritt denn der Fehler auf?
Ist es moeglich, dass du die Datei vielleicht hochlaedst?
Gruß
Yusuf

AW: XY-Diagramm
01.07.2008 14:47:00
Christoph
Hi Yusuf
Ups!!!
Vielen dank für den Tipp. Bin grad mit einzelsatz durchgegengen und habe gesehen das er schon vorher das erste mal hängen bleibt.
1.
Ich möchte, dass wenn schon ein Datenblatt und Diagramm mit dem selben MC-Namen existieren, dieses gelöscht werden. Habe dafür diesen Code verwendet:
For Each Chart In ThisWorkbook.Charts
Application.DisplayAlerts = False
Charts("Diagramm" & MC).Delete
Application.DisplayAlerts = True
Next
For Each WS In Worksheets
If WS.Name = MC Then
Application.DisplayAlerts = False
WS.Delete
Application.DisplayAlerts = True
End If
Next
Mit dem Worksheet funktioniert dass auch, nur das Diagrammblatt lässt sich nicht löschen. Weist du vieleicht bescheid?
2.
Habe nun beide Blätter von Hand gelöscht. Funktioniert mit
ActiveChart.SeriesCollection(1).XValues = "='" & MC & "'!R24C3:R24C3"
immer noch nicht.
Anwendungs- und Objektdefinierter Fehler.
Habe den Code nun folgendermassen angepasst:
'Diagramm erstellen
ZeileMax = Sheets(MC).Range("A65536").End(xlUp).Row
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets(MC).Range(Sheets(MC).Cells(1, 24), Sheets(MC).Cells(ZeileMax, 28)), _
PlotBy:=xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='" & MC & "'!C24"
ActiveChart.SeriesCollection(1).Values = "='" & MC & "'!C25"
ActiveChart.SeriesCollection(1).Name = "=""Spindelspiel X"""
ActiveChart.SeriesCollection(2).XValues = "='" & MC & "'!C27"
ActiveChart.SeriesCollection(2).Values = "='" & MC & "'!C28"
ActiveChart.SeriesCollection(2).Name = "=""Spindelspiel Z"""
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=("Diagramm" & MC)
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Spindelspiel"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Betriebsstunden"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Spindelspiel in um"
End With
Der Code läuft nun durch. Erstellt mir einfach noch zu viele Datenreihen.
Vielen Dank für deine Geduld :)
Gruss Christoph

Anzeige
AW: XY-Diagramm
01.07.2008 16:25:00
Christoph
Hallo zusammen
Habe nun noch das Poroblem, dass bei meinem XY-Diagramm zuviele Datenreihen erstellt werden. Vieleicht sieht jemand von euch den Fehler.
'Diagramm erstellen
ZeileMax = Sheets(MC).Range("A65536").End(xlUp).Row
Charts.Add
ActiveChart.ChartType = xlXYScatter
ActiveChart.SetSourceData Source:=Sheets(MC).Range(Sheets(MC).Cells(1, 24), Sheets(MC).Cells(ZeileMax, 28)), _
PlotBy:=xlColumns
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).XValues = "='" & MC & "'!C24"
ActiveChart.SeriesCollection(1).Values = "='" & MC & "'!C25"
ActiveChart.SeriesCollection(1).Name = "=""Spindelspiel X"""
ActiveChart.SeriesCollection(2).XValues = "='" & MC & "'!C27"
ActiveChart.SeriesCollection(2).Values = "='" & MC & "'!C28"
ActiveChart.SeriesCollection(2).Name = "=""Spindelspiel Z"""
ActiveChart.Location Where:=xlLocationAsNewSheet, Name:=("Diagramm" & MC)
With ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "Spindelspiel" & MC
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Betriebsstunden"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Spindelspiel in um"
End With
Danke bis jetzt für eure Hilfe
Gruss Christoph

Anzeige
AW: XY-Diagramm
02.07.2008 08:54:00
Yusuf
Hi,
sry, dass ich jetzt erst antworte. komme von zuhause immernoch nicht on.
ich vermute mal das es 2 Datenreihen zuviel sind.
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection.NewSeries
diese beiden erzeugen zusaetzliche Datenreihen.
Kannst diese ja mal wegkommentieren und gucken.
Gruß
Yusuf

AW: XY-Diagramm
02.07.2008 11:13:51
Christoph
Hi Yusuf
Kein Problem, hatte ich genug Zeit zum selber rumprobieren und meine eigenen Böcke zu finden. ;)
Waren wircklich nur noch die zwei Zeilen...
Klappt nun alles einwandfrei.
Vielen Dank für deine Hilfe.
Gruss Christoph
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige