Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: 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

Anzeige

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

Anzeige
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
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Diagramm-Achsengrenzen variabel ohne VBA anpassen


Schritt-für-Schritt-Anleitung

Um die Ober- und Untergrenze eines Excel-Diagramms dynamisch aus Zellen zu steuern, kannst du folgende Schritte befolgen:

  1. Daten eingeben: Lege in deinem Arbeitsblatt zwei Zellen fest, z.B. D20 für den Minimum-Wert und E20 für den Maximum-Wert der x-Achse.

  2. Diagramm erstellen: Erstelle ein Diagramm mit deinen gewünschten Daten.

  3. Achsen formatieren:

    • Klicke mit der rechten Maustaste auf die x-Achse des Diagramms und wähle "Achse formatieren".
    • Im Tab "Skalierung" findest du die Felder für Minimum und Maximum.
    • Trage hier die Formeln ein:
      =DeineMappe.xls!D20  (für Minimum)
      =DeineMappe.xls!E20  (für Maximum)
    • Stelle sicher, dass die Arbeitsmappe korrekt angegeben ist.
  4. Diagramm aktualisieren: Jedes Mal, wenn du die Werte in D20 und E20 änderst, wird die x-Achse automatisch angepasst.


Häufige Fehler und Lösungen

  • Fehlermeldung bei der Eingabe: Wenn du die Fehlermeldung "Die eingegebene Zahl kann nicht verwendet werden" erhältst, überprüfe, ob du den richtigen Namen der Arbeitsmappe und den Bereichsnamen korrekt eingegeben hast.

  • Achsenoptionen grenzen nicht angezeigt: Achte darauf, dass du im Dialogfeld "Achse formatieren" die richtigen Einstellungen vorgenommen hast. Manchmal müssen die Achsen auf "automatisch" eingestellt werden, um die dynamische Skalierung zu aktivieren.

  • Diagramm nicht aktualisiert: Stelle sicher, dass dein Diagramm nicht manuell auf eine feste Skalierung eingestellt ist. Es sollte auf "automatisch skalieren" eingestellt sein.


Alternative Methoden

Wenn du die Achsen nicht ohne VBA dynamisch anpassen kannst, gibt es alternative Methoden:

  • BEREICH.VERSCHIEBEN-Funktion: Diese Funktion ermöglicht es dir, den Datenbereich dynamisch zu gestalten. Du kannst den Bereich für deine Diagrammwerte so definieren, dass er sich basierend auf den Zellen D20 und E20 anpasst.

    =BEREICH.VERSCHIEBEN(Tabelle1!$A$6;INDIREKT("Tabelle1!D21");0;INDIREKT("Tabelle1!E21") - INDIREKT("Tabelle1!D21") + 1;1)
  • VBA verwenden: Wenn du bereit bist, VBA zu nutzen, kann ein kleiner Code helfen, die Achsenwerte direkt aus den Zellen zu übernehmen, ohne dass du manuell eingreifen musst.


Praktische Beispiele

Hier ist ein einfaches Beispiel für ein Diagramm mit dynamischen Achsen:

  • Benutzerdefinierte Werte: Setze in D20 den Wert 2 und in E20 den Wert 10 für die x-Achse.
  • Diagramm erstellen: Erstelle ein Diagramm mit den X-Werten im Bereich A6:A25 und Y-Werten im Bereich B6:B25.
  • Achsenformatierung: Stelle die x-Achse so ein, dass sie die Werte aus D20 und E20 verwendet.

Das Diagramm wird sich jetzt automatisch anpassen, wenn du die Werte in D20 und E20 änderst.


Tipps für Profis

  • Verwende benannte Bereiche: Um den Umgang mit Formeln einfacher zu gestalten, erstelle benannte Bereiche für deine Zellen.

  • Achsentitel aus Zelle: Du kannst auch den Titel der Achse aus einer Zelle beziehen. Klicke mit der rechten Maustaste auf den Achsentitel und wähle "Titel bearbeiten". Gib dann die Formel ein:

    =DeineMappe.xls!A1
  • Diagramm formatieren: Experimentiere mit den Diagrammformatierungen, um den besten visuellen Eindruck zu erzielen. Excel bietet viele Optionen zur Anpassung der Diagrammgestaltung.


FAQ: Häufige Fragen

1. Kann ich die Achsenwerte ohne VBA dynamisch anpassen? Ja, du kannst die Werte über Zellen steuern, aber einige Optionen sind ohne VBA eingeschränkt.

2. Wie kann ich die Skalierung automatisch anpassen? Stelle sicher, dass die Achsen auf "automatisch skalieren" eingestellt sind, um die besten Ergebnisse zu erzielen.

3. Was ist die Funktion BEREICH.VERSCHIEBEN? Diese Funktion ermöglicht es dir, einen dynamischen Bereich zu erstellen, der sich basierend auf anderen Zellen anpasst, was für die Erstellung dynamischer Diagramme nützlich ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige