Anzeige
Archiv - Navigation
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
892to896
892to896
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Diagramm: Achsengrenzen variabel ohne VBA?

Diagramm: Achsengrenzen variabel ohne VBA?
06.08.2007 00:28:50
Jens
Hallo liebe Excel-Profis!
Ich suche nach einer Möglichkeit, die Ober- und Unter-Grenze eines Excel-Diagramms variabel zu machen, ohne dabei VBA einzusetzen.
D.h.: es soll je eine Zelle geben, in die der Benutzer die beiden Werte für die Achsenskalierung (z.B. der x-Achse) eintragen kann, also Minimum- und Maximum-Wert. Das Diagramm soll nun mit diesen beiden Werten für die Skalierung der x-Achse dargestellt werden.
Ich hab versucht, hier mit dynamischen Ranges (Namen) zu arbeiten, aber die akzeptiert Excel im Diagramm-Feld nicht...
Bin für jede Idee dankbar
der Jens

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm: Achsengrenzen variabel ohne VBA?
06.08.2007 05:33:00
Beverly
Hi Jens,
Excel akzeptiert schon Bereichsnamen, es muss nur immer der Name der Arbeitsmappe voramgestellt werden, also
=DeineMappe.xls!DeinBereichsname
________________________________________

AW: Diagramm: Achsengrenzen variabel ohne VBA?
06.08.2007 12:08:00
Jens
hallo karin,
danke für deinen tipp. daran hatte ich nicht gedacht.
hab das ganze jetzt so probiert, wie du es beschrieben hast. leider hat's damit aber auch nicht geklappt.
ich hab mal ein minimalbeispiel drangehängt: https://www.herber.de/bbs/user/44786.xls
jetzt möchte ich versuchen, für den minimumwert der x-achsen-skalierung meinen "named range" einzugeben; ich mache also doppelklick auf die achse, komme ins dialogfenster "Achsen formatieren", hier am tabellenreiter "Skalierung" und dort wiederum am feld "Minimum"; da gebe ich also ein: =Testmappe.xls!x_min.
excel liefert dann die fehlermeldung "Die eingegebene Zahl kann nicht verwendet werden. Es wird wahrscheinlich eine ganze Zahl oder eine Dezimalzahl verlangt."
weißt du, woran das liegt?
danke sagt
der jens

Anzeige
AW: Diagramm: Achsengrenzen variabel ohne VBA?
06.08.2007 13:07:00
Beverly
Hi Jens,
nein, so hatte ich das nicht gemeint. Du musst den Datenbereich als solchen eingrenzen. Schau mal auf meine HP, Seite "Diagramme". Dort findest du das Beispiel Dynamisches Diagramm1. Da ist beschrieben, wie man mithilfe von Bereichsnamen und der Funktion BEREICH.VERSCHIEBEN() den darzustellenden Achsenbereich dynamisch gestaltet. Da du "Excel - gut" schreibst, solltest du das an dein Beispiel angepasst bekommen. Wenn's Probleme gibt, melde dich ruhig wieder.
Bis später,
Karin

Anzeige
AW: Diagramm: Achsengrenzen variabel ohne VBA?
07.08.2007 00:24:00
Jens
hi karin,
sorry für die verspätete rückmeldung - bin erst jetzt wieder ins internet gekommen.
danke für deine beispiel-datei. die vorgangsweise war mir bereits bekannt, also die anwendung von bereich.verschieben etc.
meine frage war hingegen leicht unterschiedlich: kann ich wirklich den minimal- und den maximalwert der achsenskalierung (sowie auch haupt- und hilfsintervall) nach benutzereingabe (also nicht automatisch durch excel!) ins diagramm übernehmen, ohne dass dabei VBA zum einsatz kommen muss?
hoffe, ich hab mich klar ausgedrückt? wenn du nicht verstehst, was ich meine, bitte einfach nochmal genauer rückfragen.
lieben gruss und vielen dank sagt
der jens

Anzeige
AW: Diagramm: Achsengrenzen variabel ohne VBA?
07.08.2007 07:49:57
Beverly
Hi Jens,
bisher war nur die Rede davon, Minimum und Maximum der X-Achse variabel zu gestalten. Und das geht mit dem bereits beschriebenen Ansatz.
Haupt- und Hilfsintervall geht nur mit VBA.
Bis später,
Karin

AW: Diagramm: Achsengrenzen variabel ohne VBA?
07.08.2007 13:41:00
Jens
hi karin,
danke für die rückmeldung.
ok, dann vergessen wir haupt- und hilfsintervall erstmal.
mir ist klar, dass excel bei verwenden von bereich-verschieben unter- und obergrenze des diagrammbereichs automatisch (selbsttätig) anpasst.
aber mir ist nicht klar, wie man mit dem bereich.verschieben-ansatz die unter- und obergrenze des diagrammbereichs händisch festlegen kann (es sollen die werte verwendet werden, die der benutzer in einer bestimmten zelle einträgt). das konnte ich deiner beispieldatei und deinen erklärungen nicht entnehmen, falls das dort zu sehen war.
liebe grüße,
der jens

Anzeige
AW: Diagramm: Achsengrenzen variabel ohne VBA?
07.08.2007 22:54:00
Beverly
Hi Jens,
nein, diese Art Erläuterungen stehen wirklich nicht in der Arbeitsmappe, sie ist nur ein generelles Beispiel für die Verwendung von BEREICH.VERSCHIEBEN als dynamischer Datenbereich. Da du dich jedoch als Excel - gut eingeschätzt hast, nahm ich an, du könntest das auf dein Problem anpassen.
In D20 z.B. gibst du das Minimum, in E20 das Maximum für die darzustellenden X-Werte an.
Tabelle1
 ABCDE
6X-WerteY-Werte   
70,04   
80,54   
91,06   
101,55   
112,04   
122,55   
133,01,2   
143,55,1   
154,07,2   
164,53,6   
175,08,7   
185,57   
196,06 MinimumMaximum
206,55 0,53,5
217,06Zeile im Wertebereich28
227,57   
238,08   
248,58   
259,07   
Formeln der Tabelle
D21 : =VERGLEICH(D20;A7:A25;0)
E21 : =VERGLEICH(E20;A7:A25;0)
 
Diagramm - Grafik - Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Die Formel für den Namen, der als Basis für den X-Wertebereich der Datenreihe im Diagramm dient, ist folgende
=BEREICH.VERSCHIEBEN(Tabelle1!$A$6;INDIREKT("Tabelle1!D21");0;INDIREKT("Tabelle1!E21") -INDIREKT("Tabelle1!D21")+1;1)


Für die Y-Werte steht $B$6 anstelle von $A$6.
Bis später,
Karin

Anzeige
AW: Diagramm: Achsengrenzen variabel ohne VBA?
08.08.2007 01:18:06
Jens
hi karin,
danke für deine antwort!
ok, das ist nicht ganz das, was ich gesucht hatte (es wird ein eingeschränkter datenbereich als datenreihe angezeigt, aber es entscheidet immer noch excel, welche werte als minimum bzw. maximum der x-achse herangezogen wird), aber es kommt dem schon nahe, und ich denke, ich werd das jetzt mal so verwenden.
meine eigentliche frage war, wie ich die skalierung von x- und y-achse von einer zelleneingabe abhängig machen kann - mit dem dargestellten datenbereich sollte das aber nicht zusammenhängen. vielleicht habe ich mich bis zuletzt unklar ausgedrückt?
aber deine version ist immerhin eine annäherung an das, was ich eigentlich wollte. also nochmals vielen dank, auch für das beispiel!
der jens

Anzeige
Achsengskalierung variabel nicht ohne VBA
08.08.2007 07:41:00
Beverly
Hi Jörg,
das gepostete Beispiel ist das Maximale, was man mithilfe einer Formel erreichen kann. Das liegt ganz einfach daran, dass bei dieser Voregehensweise die Skalierung auf automatisch gestellet sein muss. In diesem Fall nimmt Excel jedoch immer 0 als Minimum an.
Um dieses Problem zu lösen bedarf es nur eines kleinen VBA-Codes:
Private Sub Worksheet_Change(ByVal Target As Range) Dim chDiagramm As Chart Dim raStart As Range Dim raEnde As Range If Target.Count > 1 Then Exit Sub With ActiveSheet Set raStart = .Range("A6:A25").Find(.Range("D20")) Set raEnde = .Range("A6:A25").Find(.Range("E20")) Set chDiagramm = .ChartObjects(1).Chart On Error GoTo Ende Select Case Target.Address Case "$D$20", "$E$20", "$F$20", "$G$20", "$D$21", "$E$21", "$F$21", "$G$21" chDiagramm.SetSourceData Source:=.Range("A" & raStart.Row & ":B" & raEnde.Row) If Target.Row = 20 Then With chDiagramm.Axes(xlPrimary) .MinimumScale = ActiveSheet.Range("D20") .MaximumScale = ActiveSheet.Range("E20") If ActiveSheet.Range("F20") = "" Or ActiveSheet.Range("G20") = "" Then .MinorUnitIsAuto = True .MajorUnitIsAuto = True Else .MajorUnit = ActiveSheet.Range("F20") .MinorUnit = ActiveSheet.Range("G20") End If End With Else With chDiagramm.Axes(xlValue) .MinimumScale = ActiveSheet.Range("D21") .MaximumScale = ActiveSheet.Range("E21") If ActiveSheet.Range("F20") = "" Or ActiveSheet.Range("G21") = "" Then .MinorUnitIsAuto = True .MajorUnitIsAuto = True Else .MajorUnit = ActiveSheet.Range("F21") .MinorUnit = ActiveSheet.Range("G21") End If End With End If End Select End With Ende: Set raStart = Nothing Set raEnde = Nothing Set chDiagramm = Nothing End Sub


In Zeile 20 werden die Skalierungswerte für die X-Achse, in Zeile 21 für die Y-Achse eingegeben. Minimum in Spalte D, Maximum in Spalte E, Hauptintervall in Spalte F und Hilfsintervall in Spalte G.
Bis später,
Karin

Anzeige
AW: Achsengskalierung variabel nicht ohne VBA
08.08.2007 16:32:00
Jens
hallo karin,
danke auch für den codeausschnitt! funktioniert so ganz gut, aber halt leider auf VBA-basis.
danke für deine hilfe!
der jens

43 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige