- #1
K
klexy
Bekanntes Mitglied
Themenersteller
- Dabei seit
- 04.05.2002
- Beiträge
- 802
- Reaktionspunkte
- 0
- Ort
- Bayern
Ich habe eine riesige Tabelle. Irgendwo mittendrin sind die Zellen aus denen ich ein Diagramm machen will (E1: G34).
Im Makro sieht das dann so aus und funktioniert:
In Spalte D ist immer die durchlaufende Nummerierung bis zu der aktuell gültigen Anzahl der Zeilen.
Aber: Die Tabelle ist jeden Monat neu und hat nicht immer 34 Zeilen, sondern auch mal 10 wie im folgenden Beispiel (- steht für leere Zellen). Links und rechts davon sind jeweils mehr als 50 Zeilen befüllt. Bevor der Befehl zum Diagramm kommt, ist der korrekte Datenbereich durch Makro-Befehle vollständig markiert. Die Markierung beginnt von rechts unten und geht nach links oben. Im Beispiel G9-E1:
D E F G
1 - - -
2 5 2 -
3 - - -
4 9 - -
5 3 - 1
6 - - -
7 7 - 2
8 6 - -
9 - - 4
Wie kann ich aus dem absoluten Wert Range(E1:G34) einen relativen Bezug in der Art von Range(ActiveCell, ActiveCell.End(xlDown).Offset(0, 2)) machen?
Das Problem ist, daß Spalte D, die als einzige ansagt wieviele Zeilen vorhanden sind, nicht Teil des Diagramms werden soll. Der relative Bezug mit End(xlDown) funktioniert also nicht weil in den zu verarbeitenden Werten immer wieder leere Zellen sind (und sein müssen!).
Es müsste irgendwas mit ActiveRange oder Count.Rows oder so sein, aber ich komm nicht dahinter.
[Edit]
Auf folgendes bin ich gekommen:
Das Diagramm wird korrekt ausgegeben, aber dann hängt er sich auf und markiert mir die o.g. Zeile als falsch: Laufzeitfehler->91' Objektvariable oder With-Blockvariable nicht festgelegt
Wenn ich folgendes mache:
wird das Diagramm auch korrekt ausgegeben und danach hängt er sich auf: Laufzeitfehler->1004' Anwendungs-oder objektdefinierter Fehler
Im Makro sieht das dann so aus und funktioniert:
Code:
Charts.ADD
ActiveChart.ChartType = xl3DColumn
ActiveChart.SetSourceData Source:=Sheets(Tabelle2).Range(E1:G34), PlotBy _
:=xlColumns
Aber: Die Tabelle ist jeden Monat neu und hat nicht immer 34 Zeilen, sondern auch mal 10 wie im folgenden Beispiel (- steht für leere Zellen). Links und rechts davon sind jeweils mehr als 50 Zeilen befüllt. Bevor der Befehl zum Diagramm kommt, ist der korrekte Datenbereich durch Makro-Befehle vollständig markiert. Die Markierung beginnt von rechts unten und geht nach links oben. Im Beispiel G9-E1:
D E F G
1 - - -
2 5 2 -
3 - - -
4 9 - -
5 3 - 1
6 - - -
7 7 - 2
8 6 - -
9 - - 4
Wie kann ich aus dem absoluten Wert Range(E1:G34) einen relativen Bezug in der Art von Range(ActiveCell, ActiveCell.End(xlDown).Offset(0, 2)) machen?
Das Problem ist, daß Spalte D, die als einzige ansagt wieviele Zeilen vorhanden sind, nicht Teil des Diagramms werden soll. Der relative Bezug mit End(xlDown) funktioniert also nicht weil in den zu verarbeitenden Werten immer wieder leere Zellen sind (und sein müssen!).
Es müsste irgendwas mit ActiveRange oder Count.Rows oder so sein, aber ich komm nicht dahinter.
[Edit]
Auf folgendes bin ich gekommen:
Code:
ActiveChart.SetSourceData Source:=Sheets(Tabelle2).Range(ActiveCell, ActiveCell.Offset(-ActiveCell.Row, -2)), PlotBy _
:=xlColumns
Wenn ich folgendes mache:
Code:
ActiveChart.SetSourceData Source:=Sheets(Tabelle2).Range(E1, ActiveCell), PlotBy _
:=xlColumns