Herbers Excel-Forum - das Archiv
Wert per Makro in Diagramm einfügen
Betrifft: Wert per Makro in Diagramm einfügen
von: nicospostbox@yahoo.de
Geschrieben am: 19.12.2006 11:53:29
Hallo zusammen!
Ich habe ein Problem, das wahrscheinlich relativ einfach zu lösen ist - nur eben nicht für mich! :-)
Ich möchte den Maximalwert der Skalierung eines Diagramms automatisch anpassen, und zwar soll der Maximalwert dem Wert in Zelle a1 entsprechen.
Geht sowas? Und wenn ja - WIE??
Danke für Euer Feedback!
Ciao
Nico
Betrifft: AW: Wert per Makro in Diagramm einfügen
von: ingUR
Geschrieben am: 19.12.2006 14:02:28
Halo, Nico,
Deine Fragestellung ist nicht eindeutig, da Du nicht verräts, welche Achse, die Rubrikachse (X) oder Wertachse (Y) den maximalwert nach dem Eintrag der Zelle A1 einnehmen soll.
Ferner bleibt offen, ob Du ein Diagrammblatt ansprechen willst, oder das Diagramm im selben Tabellenblat sich befindet, wie die Zelle A1.
Ich habe die folgende Festlegungen für die dargestellte Lösung getroffen:
Das Diagramm befindet sich auf dem selbben Tabellenblatt wie die Zelle A1
Es wird der Maximalwert der Skalar der Werteachse Y verändert.
'in das Tabellenblattmodul schreiben, in dem sich die Referenzzelle befindet:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then SetMaxScalYValue
End Sub
'in ein Standardmodul schreibe:
Sub SetMaxScalYValue()
Dim maxY
maxY = Range("A1")
ActiveSheet.ChartObjects("Diagramm 1").Activate
'ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MaximumScale = maxY
ActiveWindow.Visible = False
Windows("Mappe1").Activate
Range("A1").Select
End Sub
Anpassungen wirst Du nach Deinen Wünschen vielleicht vornehmen können, wenn Du Dur eine Majroaufzeichnung der notwendigen Befehle im Vergleich zu diesem Programmcode anschaust.
Gruß,
Uwe
Betrifft: @ Uwe
von: Heiko S.
Geschrieben am: 19.12.2006 14:08:46
Hallo Uwe,
auch das geht ohne Select und Activate ;-)
Sub SkalierungNachA1()
' Name für Diagramm anpassen
ActiveSheet.ChartObjects("Diagramm 1").Chart.Axes(xlValue).MaximumScale = ActiveSheet.Range("A1").Value
End Sub
Gruß Heiko
Betrifft: AW: @ Uwe
von: ingUR
Geschrieben am: 19.12.2006 14:47:17
Danke, Heiko,
für die Verkürzung; doch im Hintergrund hatte ich den Gedanken, dass Nico bei eigenen Makroaufzeichnungen, einen gewissen Grad an Wiedererkennung findet.
Gruß,
Uwe
Betrifft: AW: @ Uwe
von: nicospostbox@yahoo.de
Geschrieben am: 19.12.2006 15:37:57
Hallo zusammen!
Danke für Eure Hilfe - hab´s inzwischen hinbekommen! Aber du hattest Recht - die Angaben waren nicht eindeutig! Das Diagramm war auf der selben Seite wie A1 und ich wollte die X-Achse anpassen!!
Ciao
Nico