Clever-Excel-Forum

Normale Version: Bereich einer Datenreihe via Zellen angeben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo,

wie ist es möglich bei einer Datenreihe in einem x/y Diagramm die Bereichsangabe extern anzugeben?

z.B. =DATENREIHE('DUT View'!$F$10;'DUT View'!$E$68:$E$124;'DUT View'!$F$68:$F$124;2)

Gerne würde ich in den Zellen folgendes vorgeben:
x-Achsen Bereich:
A1: E
A2:  68
A3 124
y-Achsen Bereich:
B1: F
B2:  68
B3 124

Mit bereich.verschieben möchte ich es nicht lösen.
Ich würde gerne die o.g. Formel der Datenreihe manipulieren das es sich den Bereich von den Zellen A1,2,3 und B1,2,3 zusammenstellt.
Hallo k...,

das ginge mit VBA. Geht das für dich in Ordnung?
Aber warum willst du die Zeilengrenzen zweimal eingeben?
Hallo,
ja VBA wäre auch iO. Richtig Zeilenbeginn und Ende reicht einmal.
Hallo k...

in der Anlage einmal ein Beispiel. Und hier noch einige Bemerkungen.

1. Da du die Spalte der Y-Werte variable halten möchtest, sollte auch die Zeile des Namens erfasst werden um auch diesen anpassen zu können.
2. Da ich ungern mit festen Adressen im Programm arbeite, habe ich den fünf Zellen einen Namen ("Liste") gegeben.
3. Den Namen deines Diagramms siehst du, wenn du das Diagramm anklickst, links in der Bearbeitungszeile.
4. Ich habe den code in das Ereignis "Worksheet_Change" eingebunden. Nur wenn sich einer der fünf Zellen ändert wird das Diagramm angepasst.


Code:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngListe As Range
Dim varListe() As Variant

Set rngListe = ThisWorkbook.Names("Liste").RefersToRange

If Not (Intersect(Target, rngListe) Is Nothing) Then
    varListe = rngListe.Value
    ActiveSheet.ChartObjects("Diagramm 1").Activate
    ActiveChart.FullSeriesCollection(1).Select
    Selection.XValues = ActiveSheet.Range(varListe(1, 1) & varListe(4, 1) & ":" & varListe(1, 1) & varListe(5, 1))
    Selection.Values = ActiveSheet.Range(varListe(2, 1) & varListe(4, 1) & ":" & varListe(2, 1) & varListe(5, 1))
    Selection.Name = ActiveSheet.Range(varListe(2, 1) & varListe(3, 1))
End If

End Sub
Ok, tönt super. Habe leider noch ein Problem, es gibt einen Fehler wenn es die Datenreihe anwählt...
Hallok...,

da der Fehler bei mit nicht auftritt, kann ich dir die Frage nicht beantworten.

Hast du schon etwas an der Datei geändert?
Trat der Fehler bei der ersten Änderung einer der fünf Zellen auf?
... habe nichts geändert nur an einer der 5 Zeilen einen Wert geändert
Hallo k...,

in der Anlage einmal eine Version ohne ".Activate" und ".Select".
[
Bild bitte so als Datei hochladen: Klick mich!
]
und der debugger stoppt hier:
    With Me.ChartObjects("Diagramm 1").Chart.FullSeriesCollection.Item(1)

Ich verwende Excel 2007. Ist das FullSeriesCollection dort evtl. noch nicht implementiert?
so scheint es zu gehen:
    With Me.ChartObjects("Diagramm 1").Chart.SeriesCollection.Item(1)
Seiten: 1 2