Y-Achse Min-Wert definieren
23.06.2015 09:56:41
Marc-mag
ich möchte den Min-Wert einer Y-Achse über einen zuvor errechneten Wert definieren und schaffe es einfach nicht. Bin bereits auf viele Beiträge gestoßen, die aber alle auf eine VBA Lösung hinaus laufen. Prinzipiell ist es mir egal, ob es eine Excel-Funktion oder eine VBA Lösung ist, Hauptsache es funktioniert endlich.
Hier mein Problem:
Ich habe ein Diagramm in ein separates Arbeitsblatt verschoben. In dieses Arbeitsblatt habe ich ein zweites Diagramm verschoben. Der Grund dafür ist, dass ich die beiden Grafiken in einem Arbeitsblatt untereinander mit einer Legende dazwischen darstellen möchte, um sie direkt ausdrucken zu können. zudem musste ich manuell noch eine Legende erstellen, die ich nicht mehr verschieben will.
Jetzt sollen beide Diagramme automatisch den jeweils kleinsten zugehörigen Wert des Diagramms angepasst werden, die zuvor berechnet wurden.
Wunderschön wäre eine simple Lösung, in der ich in die Eigenschaften des Diagramms gehen könnte, und der Y-Achse für den Min-Wert einfach einen Zellenwert zuweisen könnte. Das funktioniert anscheinend aber nicht.
Die Lösung mit Bereich.Verschieben ist zwar eine ganz nette Idee, aber dadurch das die Werte sehr unterschiedlich sein können, habe ich kein Tabellen, die die einzelnen Intervalle definieren könnten, da die Datenbasis dynamisch ist und von der Dateneingabe abhängt. Die Dateneingabe wird wahrscheinlich mehrere Hundert Zeilen haben...
Deswegen bin ich auf VBA umgestiegen. Für das "Hauptdiagramm" (das Diagramm, aus dem das Arbeitsblatt eigl besteht) funktioniert das gut:
Sub xy
Sheets("Darstellung").Select
ActiveChart.Axes(xlValue).MinimumScale = Worksheets("Darstellungsvorbereitung").Cells(29, 2). _
Value
// Zelle (29,2) enthält den ausgerechneten Min-Wert, bei dem die Y-Achse beginnen soll
End Sub
Jetzt fängt aber die Krux mit der VBA-Lösung an. Denn bei dem Diagramm im Diagramm funktioniert das nicht. Mit dem Makrorec habe ich mal eine manuelle Skalierung aufgenommen. Dabei wird mir der Name des zweiten Diagramms aufgezeigt:
ActiveSheet.ChartObjects("Diagramm 464").Activate
Verwende ich diesen Befehl, um die Funktion ".MinimumScale..." aufzurufen, wird mir ein Fehler bei der Benennung angezeigt. Das Diagramm wird anscheinend nicht gefunden...
Anfangs hatte ich gehofft eine Lösung zu finden, indem ich dem zweiten Diagramm ein Makro zuweise. Dummer weiße kann ich, dadurch das ich das zweite Diagramm nicht aufrufen kann, das Diagramm im Diagramm nicht ansprechen. Schreibe ich also
Sub yz
ActiveChart.Axes(xlValue).MinimumScale = Worksheets("Darstellungsvorbereitung").Cells(28, 2). _
_
_
Value
End Sub
wird wieder das erste Diagramm skaliert.
Ich hoffe ihr könnt mir weiterhelfen!
Vielen Danke!
Grüße,
Marc