Bereich einer Datenreihe via Zellen angeben
#1
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.
Top
#2
Hallo k...,

das ginge mit VBA. Geht das für dich in Ordnung?
Aber warum willst du die Zeilengrenzen zweimal eingeben?
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#3
Hallo,
ja VBA wäre auch iO. Richtig Zeilenbeginn und Ende reicht einmal.
Top
#4
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


Angehängte Dateien
.xlsm   TestDiagramm.xlsm (Größe: 23,18 KB / Downloads: 3)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#5
Ok, tönt super. Habe leider noch ein Problem, es gibt einen Fehler wenn es die Datenreihe anwählt...


Angehängte Dateien Thumbnail(s)
   
Top
#6
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?
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#7
... habe nichts geändert nur an einer der 5 Zeilen einen Wert geändert
Top
#8
Hallo k...,

in der Anlage einmal eine Version ohne ".Activate" und ".Select".


Angehängte Dateien
.xlsm   TestDiagramm.xlsm (Größe: 23,29 KB / Downloads: 2)
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Top
#9
[
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?
Top
#10
so scheint es zu gehen:
    With Me.ChartObjects("Diagramm 1").Chart.SeriesCollection.Item(1)
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste