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

Forumthread: Diagramm y-achse automatisch einstellen

Diagramm y-achse automatisch einstellen
23.04.2016 13:29:40
Patrick
Guten Tag Allerseits,
Gerne würde ich um Eure Hilfe für die folgende Problemstellung bitten:
In der Spalte A stehen Datumswerte (von z.B. 2008 bis Heute) - x-Achse
In der Spalte B stehen die dazugehörigen Preise. - y-Achse
Ich erstelle nun ein Diagramm und sehe die Preisentwicklung von 2008 bis 2016.
Wenn ich nun die Zeitachse eingrenze, z.B. von 2015 bis 2016, dann wäre es toll wenn über eine Formel oder Code der kleinste bzw. grösste Werte innerhalb von 2015 bis 2016 ermittelt wird und diese automatisch als min. bzw. max. wert im Diagramm eingetragen werden.
Ziel ist es, dass die y-Achse besser dargestellt wird.
Wäre dies möglich umzusetzen?
Danke und Beste Grüsse
Patrick

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Diagramm y-achse automatisch einstellen
23.04.2016 19:34:24
Beverly
Hi Patrick,
was verstehst du unter "als min. bzw. max. wert im Diagramm eingetragen werden" - dass die Achsenskalierung dahingehend eingeregelt wird? Oder meinst du etwas anderes?


AW: Diagramm y-achse automatisch einstellen
23.04.2016 22:55:26
Patrick
Hi Karin,
Genau, das die Achsenskalierung dahingehend eingeregelt wird...
Grüsse
Patrick

Anzeige
AW: Diagramm y-achse automatisch einstellen
24.04.2016 09:20:55
Beverly
Hi Patrick,
das ließe sich dann nur mit VBA lösen - du könntest z.B. das Change-Ereignis benutzen oder ein anderes Ereignis, mit dem du die Zeitachse eingrenzt.
Da ich deinen Tabellenaufbau und das Diagramm nicht kenne, kann ich allerdings nur einen prinzipiellen Code posten - den musst du an deine Bedingungen anpassen. Im Beispiel wird bei Eingabe in D2 (Eintrag ist Nummer des 1. darzustellenden Datenpunktes) bzw. E2 (Eintrag ist Nummer des letzten darzusellenden Datenpunktes) das Change-Ereignis des Tabellenblattes ausgelöst und die Vertikalachse im Diagramm entsprechend Min/Max im betreffenden Zellenabschnitt skaliert:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim serReihe As Series
If Not Intersect(Target, Range("D2:E2")) Is Nothing Then
If IsNumeric(Target) Then
With ActiveSheet.ChartObjects(1).Chart
Set serReihe = .SeriesCollection(1)
With .Axes(xlValue)
.MinimumScale = Application.Min(serReihe.Values)
.MaximumScale = Application.Max(serReihe.Values)
End With
End With
End If
End If
End Sub

Die Datei https://www.herber.de/bbs/user/105186.xlsm wurde aus Datenschutzgründen gelöscht




Anzeige
AW: Diagramm y-achse automatisch einstellen
24.04.2016 19:37:35
Patrick
Hallo Karin,
Danke für deinen Input :-)
ich werde in zukunft gleich in excel datei beispiel mitanhängen damit der sachverhalt klarer ist...
ich habe nun ein beispiel angehängt. https://www.herber.de/bbs/user/105194.xlsm
im bereich d8:e8 definiere ich die x-achsen min. bzw. max. werte.
im bereich d12:e12 sollten mit hilfe einer formel im definierten x-skala bereich die min. bzw. max y-skala werte ermittelt werden. diese wiederum mit deinem makro automatisch dem diagramm weitergeleitet werden. ich hoffe meine erläuterungen bzw. beispiel helfen den sachverhalt genauer zu erläutern :-)
Beste Grüsse
Patrick

Anzeige
AW: Diagramm y-achse automatisch einstellen
24.04.2016 20:31:21
Beverly
Hi Patrick,
die Formeln für D12 und E12 sind ja nun nicht das Problem:

Tabelle1
 DE
6x scale 
7minmax
804.01.201609.01.2016
9  
10y scale 
11minmax
1279

verwendete Formeln
Zelle Formel Bereich N/A
D8=+E8-5  
E8=+A2  
D12=MIN(INDEX(B:B;VERGLEICH(D8;A:A;0);1))  
E12=MAX(INDEX(B:B;VERGLEICH(E8;A:A;0);1))  
Excel-Inn.de
Hajo-Excel.de
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 22.01 einschl. 64 Bit


Mir ist aber nicht klar, wie und wo du vorgeben willst, wie das niedrigste und höchste darszustellende Datum definiert wird - in deiner Mappe gibst du das per Formel an, ich könnte mir aber durchaus vorstellen, dass es nicht immer von =A2 für das eine und =E8-5 für das andere Datum sein soll. Oder meinst du, dass sich das Min/Max anpassen soll, wenn in Spalte B ein Y-Wert geändert wird? Du müsstest also schon mal genau erläutern, was und wie das ganze funktionieren soll.


Anzeige
AW: Diagramm y-achse automatisch einstellen
24.04.2016 23:06:36
Patrick
Guten Abend Karin,
ich möchte den kleinsten bzw. höchsten y-wert innerhalb des bereiches neuestes datum bis 5 tage zuvor, das wäre fix und kein problem.
die angegebene formel jedoch ermittelt nur den entsprechenden wert für d8 bzw. e8, und nicht den kleinsten bzw. höchsten wert innerhalb dieses zeitraumes.
Um es anderes zu formulieren: welcher ist der kleinste bzw. höchste preis (y-wert) zwischen dem 04.01.2016 und 09.01.2016? wenn die min./max. formel funktioniert dann kann ich den rest selber lösen :-)
Beste Grüsse
Patrick

Anzeige
AW: Diagramm y-achse automatisch einstellen
25.04.2016 11:27:53
Beverly
Hi Patrick,
ja, du hast Recht, es fehlt der Startbereich - die Formeln müssen so heißen
=MIN(INDEX(B:B;VERGLEICH(D8;A:A;0);1):INDEX(B:B;VERGLEICH(E8;A:A;0);1))
=MAX(INDEX(B:B;VERGLEICH(D8;A:A;0);1):INDEX(B:B;VERGLEICH(E8;A:A;0);1))


Anzeige
AW: Diagramm y-achse automatisch einstellen
25.04.2016 15:12:09
Patrick
Hallo Karin,
Herzlichen Dank für deine Hilfe! nun klappt es wunderbar :-)
Beste Grüsse
Patrick
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Diagramm y-Achse automatisch anpassen


Schritt-für-Schritt-Anleitung

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in Spalte A (Datumswerte) und Spalte B (Preise) korrekt eingegeben sind.

  2. Diagramm erstellen: Wähle deine Daten aus und gehe zu Einfügen > Diagramm und wähle den gewünschten Diagrammtyp aus, z.B. ein Liniendiagramm.

  3. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  4. Code hinzufügen: Füge den folgenden Code in das entsprechende Tabellenblatt ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Dim serReihe As Series
       If Not Intersect(Target, Range("D2:E2")) Is Nothing Then
           If IsNumeric(Target) Then
               With ActiveSheet.ChartObjects(1).Chart
                   Set serReihe = .SeriesCollection(1)
                   With .Axes(xlValue)
                       .MinimumScale = Application.Min(serReihe.Values)
                       .MaximumScale = Application.Max(serReihe.Values)
                   End With
               End With
           End If
       End If
    End Sub
  5. Min/Max Werte definieren: Trage in die Zellen D2 und E2 die gewünschten Start- und Endpunkte deiner x-Achse ein.

  6. Formeln für y-Achse: Verwende folgende Formeln, um die y-Achse automatisch zu skalieren:

    • Für den minimalen Wert:
      =MIN(INDEX(B:B;VERGLEICH(D8;A:A;0);1):INDEX(B:B;VERGLEICH(E8;A:A;0);1))
    • Für den maximalen Wert:
      =MAX(INDEX(B:B;VERGLEICH(D8;A:A;0);1):INDEX(B:B;VERGLEICH(E8;A:A;0);1))
  7. Diagramm aktualisieren: Jedes Mal, wenn du die Werte in D2 oder E2 änderst, wird die y-Achse automatisch angepasst.


Häufige Fehler und Lösungen

  • Diagramm aktualisiert sich nicht: Stelle sicher, dass der VBA-Code korrekt eingegeben und das Diagramm auf das richtige Datenblatt verweist.

  • Min/Max Werte werden nicht korrekt berechnet: Überprüfe die Formeln in den Zellen D12 und E12. Sie sollten auf die korrekten Zellen verweisen.

  • VBA-Sicherheitswarnung: Aktiviere Makros in deinen Excel-Optionen, um den Code auszuführen.


Alternative Methoden

  • Direkte Diagrammformatierung: Du kannst die y-Achse manuell skalieren, indem du mit der rechten Maustaste auf die y-Achse klickst und Achse formatieren auswählst. Hier kannst du die Minimum- und Maximumwerte manuell festlegen.

  • Dynamische Bereiche nutzen: Verwende dynamische benannte Bereiche in Excel, um die Datenquelle deines Diagramms automatisch anzupassen, wenn neue Daten hinzugefügt werden.


Praktische Beispiele

  1. Beispiel 1: Du hast Daten über die Preisentwicklung von 2008 bis 2016. Durch das Anpassen der y-Achse wird die Preisentwicklung klarer dargestellt, insbesondere wenn du den Zeitraum von 2015 bis 2016 analysierst.

  2. Beispiel 2: Wenn du in Zelle D2 den Wert 04.01.2016 und in E2 den Wert 09.01.2016 eingibst, wird die y-Achse automatisch auf die minimalen und maximalen Werte zwischen diesen Daten angepasst.


Tipps für Profis

  • Formeln optimieren: Überlege, ob du die Formeln für die y-Achse weiter verfeinern kannst, um auch andere Kriterien zu berücksichtigen, wie etwa den Durchschnittspreis während eines Zeitraums.

  • Diagrammgestaltung: Nutze die Formatierungsoptionen in Excel, um dein Diagramm ansprechender zu gestalten, z.B. durch Anpassungen der Farben und Stile.

  • Ereignisgesteuertes Programmieren: Du kannst den VBA-Code erweitern, um auf andere Ereignisse zu reagieren, wie z.B. Änderungen in anderen Zellen oder Blättern.


FAQ: Häufige Fragen

1. Wie kann ich die y-Achse in einem Diagramm automatisch skalieren?
Du kannst dies tun, indem du VBA verwendest, um die Minimum- und Maximumwerte der y-Achse dynamisch zu berechnen, basierend auf den eingegebenen Daten.

2. Was muss ich tun, wenn mein Diagramm nicht aktualisiert wird?
Überprüfe den VBA-Code und stelle sicher, dass die richtigen Zellreferenzen für die y-Achsenwerte verwendet werden. Aktiviere auch Makros in den Excel-Optionen.

3. Kann ich die y-Achse auch ohne VBA anpassen?
Ja, du kannst die y-Achse manuell anpassen, indem du mit der rechten Maustaste auf die Achse klickst und die Skalierungseinstellungen änderst.

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