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

Datenreihe per VBA

Datenreihe per VBA
13.12.2007 00:52:35
Dennis
Hallo zusammen,
ich erstelle eine Datenreihe per VBA und erzeuge auch die Werte für diese Datenreihe in VBA.
Die Werte sind ein Range-Objekt:
ein code in der Art funktioniert:
dim x_wert as Range
set x_wert = Range(Cells(10,16),Cells(20,16))
ChartObjects(1).Chart.SeriesCollection(5).XValues = x_wert
Mein Problem ist nun folgendes:
Ich möchte zusätzlich zu dem "Range" noch 2 weitere Werte hinzufügen, einmal vor dem Range-Wert und danach.
z.B.
xAchse: 5, dann der Bereich, 5
weiss jemand wie ich das in VBA schreiben muss damit es funktioniert?
Ich hoffe ich konnte mein Problem einigermaßen verständlich schildern.....
Schonmal vielen Dank für die Hilfe!!
Gruss Dennis

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datenreihe per VBA
13.12.2007 07:44:43
Beverly
Hi Dennis,
mir ist nicht ganz klar, was du erreichen willst - soll die Datenreihenformel zugewiesen werden? Dann z.B. so:

Dim x_wert As String
x_wert = Range(Cells(10, 16), Cells(20, 16)).Address
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(5).FormulaLocal = "=DATENREIHE(;;'" & 5 & "'! _
" & x_wert & ";" & 4 & ")"


________________________________________

AW: Datenreihe per VBA
13.12.2007 13:03:16
Dennis
Hi Karin,
es kann schon die Datenreihen-formel zugewiesen werden.
Wenn ich deinen Code versuche passiert allerdings nichts. Er zeigt keinen Fehler an, der erstellte String wird aber der X-Achsen-Werte nicht zugewiesen.
Ich weiss auch ehrlich gesagt nicht was:
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(5).FormulaLocal
macht.
ich dachte für die x-Achse muss folgendes geschrieben werden:
ActiveSheet.ChartObjects(1).Chart.SeriesCollection(5).XValue
setze ich dass allerdings gleich dem String so bekomme ich eine Fehlermeldung 1004
Ich muss auch diesen Vorgang für die Y-Achse durchführen, da ich dort ja die gleiche Anzahl an Werten benötige.
Gruss Dennis

Anzeige
AW: Datenreihe per VBA
13.12.2007 14:06:00
Beverly
Hi Dennis,
mit ....FormulaLocal = .... übergibst du die Datenreihenformel, wie du sie in der Bearbeitungsleiste sehen kannst, wenn du eine Datenreihe im Diagramm markierst. Damit wird sowohl X- als auch Y-Wert gemeinsam übergeben.
Weshalb sich bei dir nichts verändert, kann ich nicht sagen, da ich deine Arbeitsmappe nicht kenne. Vielleicht könntest du sie mal hochladen, dann lässt sich das besser nachvollziehen.
Bis später,
Karin

AW: Datenreihe per VBA
13.12.2007 14:24:37
Dennis
So ich habe mal eine vereinfachte Variante des Problems erstellt.
https://www.herber.de/bbs/user/48438.xls
Reihe1 im Diagramm ist das was ich erreichen möchte. Diese Reihe habe ich aber in Excel selbst erstellt.
Das ganze möchte ich mit VBA erstellen, aber mir gelingt es einfacht nicht. Die 2 zusätzlichen Werte vor und nach dem Bereich anzufügen.
Der Code in VBA erzeugt momentan nur das Kreissegment. Ich möchte eben noch, das die Verbindung zum Mittelpunkt erzeugt wird.
Möglich wäre es natürlich die gewünschten Werte vernünftig untereinander zu schreiben und dann den gesamten Bereich einzulesen. Ich würde aber gerne ohne diesen "trick" arbeiten....
Gruss Dennis

Anzeige
AW: Datenreihe per VBA
13.12.2007 15:27:53
Beverly
Hi Dennis,
da sich bei einem nicht zusammenhängenden Bereich der Range nicht direkt zuweisen lässt, dann kann man das auch so machen

.XValues = "=(Tabelle1!R4C4,Tabelle1!R2C1:R36C1,Tabelle1!R4C4)"
.Values = "=(Tabelle1!R4C5,Tabelle1!R2C2:R36C2,Tabelle1!R4C5)"


Bis später,
Karin

AW: Datenreihe per VBA
13.12.2007 15:39:00
Dennis
Hi Karin,
ok das Problem ist aber dann wie kann ich in VBA die XWerte automatisch berechnen.
Da ich später das ganze dynamisch habe und über ein Schleife das aufrufe, kann ich nicht vorher schon den ganzen String hinschreiben.
Tabelle1!R4C4 entspricht Range("D4")
Wie bekomme ich aus Range("D4") den String R4C4
mit .Address oder .AddressLocal bekomme ich immer nur: $D$4
Gruss Dennis

Anzeige
Danke klappt!
13.12.2007 15:50:13
Dennis
Hi Karin,
so habe es Dank deiner Hilfe nun hinbekommen.
musste für die Addresse:
.Address(ReferenceStyle:=xlR1C1)
verwenden.
Jetzt funktioniert es.
Vielen Dank
Gruss Dennis

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige