Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Achsenmaximum auslesen

Achsenmaximum auslesen
15.03.2018 08:48:29
Johann
Hallo miteinander,
ist es denn möglich aus einem Diagramm das Minimum oder Maximum einer Achse (Achsenoptionen - Grenzen - Minimum/Maximum) in eine Zelle auslesen zu lassen?
LG Jo
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Ja, mit VBA...
15.03.2018 09:04:42
Beverly
Hi,
...das WIE hängt vom Diagrammtyp ab und um welche Achse es sich handelt.


AW: Ja, mit VBA...
15.03.2018 09:19:13
Johann
Es handelt sich um ein Diagramm aus Punkten mit geraden Linien. Und bei der Achse handelt es sich um eine normal skalierte y-Achse mit Zahlen.
Geht es auch ohne VBA?
Anzeige
Nur mit VBA möglich
15.03.2018 09:57:38
Beverly

Sub DiaAchsenwerte()
Range("C1") = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MaximumScale
Range("C2") = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MinimumScale
End Sub


AW: Nur mit VBA möglich
15.03.2018 10:03:21
Johann
Danke für die Lösung, da meine VBA-Kenntnisse leider etwas bescheiden sind hätte ich noch eine Frage: Wäre es möglich mittels VBA daraus eine Worksheet-Function zu machen und diese dann in der Arbeitsmappe zu verwenden?
Anzeige
AW: Nur mit VBA möglich
15.03.2018 10:20:00
Daniel
Hi
im Prinzip so, wenn du nur ein Diagramm hast.
Die Funktion läuft aber nur in dem Blatt, in dem das Diagramm liegt:
Function DiaAchsenMax(rng as Range) as Double
DiaAchsenMax = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MaximumScale
End function
Function DiaAchsenMin(rng as Range) as Double
DiaAchsenMin = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MinimumScale
End function
in der Zelle dann:
=DiaAchsenMax(A1:A10)
beim Zellbereich solltest du auf Zellen der Werttabelle des Diagramms verweisen.
Das wird zwar für die Ermittlung der Werte nicht benötigt, aber dann wird die Formel automatisch neu berechnet, wenn sich die Werte ändern.
wenns ganz ohne VBA gehen soll, müsstest du mal das WWW (oder vielleicht auch die Hilfe) nach den Spielregeln, mit denen Excel die Max-Werte ermittelt, durchsuchen und das dann als Excelformel nachbauen.
Gruß Daniel
Anzeige
AW: Nur mit VBA möglich
15.03.2018 10:32:25
Johann
Vielen Dank, funktioniert einwandfrei!
AW: Nur mit VBA möglich
15.03.2018 11:00:25
Beverly
Hi Daniel,
interessante Lösung, hätte nicht gedacht dass das möglich ist - man lernt halt nie aus ;-)
M.E. eine kleine Einschränkung: wenn die Achsenskalierung im Diagramm von Hand geändert wird, müssen die Formeln (von Hand) neu berechnet werden.


Anzeige
AW: Nur mit VBA möglich
15.03.2018 11:11:26
Daniel
Hi Beverly
lesend kann man in der Regel mit UDFs auf die meisten Objekte zugreifen, nur Veränderungen an den Objekten sind nicht möglich.
das mit der Aktualisierung der Formel bei manueller Änderung des Diagramms ist natürlich ein Problem, dass sich nicht vermeiden lässt.
Hier könnte man höchstens die Formel volatil machen, so dass sie zumindest bei der nächsten Änderung im Tabellenblatt (egal wo) den aktuellen Wert anzeigt (ähnlich wie JETZT() und die aktuelle Uhrzeit)
dann wäre es auch nicht mehr notwendig, den Zellbereich der Werte zu übergeben.
Function DiaAchsenMax() as Double
Application.Volatile
DiaAchsenMax = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MaximumScale
End function

Anzeige
AW: Nur mit VBA möglich
15.03.2018 10:22:00
Beverly
Was verstehst du unter "Worksheet-Function"? Meinst du vielleicht eine Benutzerdefinierte Funktion? Das ist nicht möglich, da sich diese auf Zellen beziehen muss und deshalb nicht auf eingebettete Objekte anwendbar ist.
Schreibe das Makro einfach in ein Standardmodul und führe es aus, dann schreibt es in C1 das Maximum und in C2 das Minimum - die Zellen musst du natürlich anpassen.


Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Achsenmaximum auslesen in Excel


Schritt-für-Schritt-Anleitung

Um das Maximum und Minimum einer Achse aus einem Diagramm in Excel auszulesen, kannst du VBA verwenden. Folgende Schritte sind notwendig:

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

  2. Modul hinzufügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  3. Code einfügen: Kopiere den folgenden Code in das Modul:

    Sub DiaAchsenwerte()
        Range("C1") = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MaximumScale
        Range("C2") = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MinimumScale
    End Sub
  4. Ausführen: Schließe den VBA-Editor und führe das Makro aus, um die Werte in die Zellen C1 (Maximum) und C2 (Minimum) zu schreiben.


Häufige Fehler und Lösungen

  • Fehler: Das Makro funktioniert nicht oder gibt einen Fehler zurück.

    • Lösung: Stelle sicher, dass das Diagramm vorhanden ist und korrekt ausgewählt wurde. Überprüfe auch, ob die Achse, die du auslesen möchtest, die richtige ist (y-Achse oder x-Achse).
  • Fehler: Die Werte in den Zellen aktualisieren sich nicht.

    • Lösung: Dies kann passieren, wenn die Achsenoptionen manuell geändert werden. In diesem Fall musst du das Makro erneut ausführen, um die aktuellen Werte zu erhalten.

Alternative Methoden

Falls du keine VBA-Lösungen nutzen möchtest, kannst du versuchen, die Werte manuell zu ermitteln:

  1. Klicke mit der rechten Maustaste auf die Achse im Diagramm.
  2. Wähle Achsenoptionen.
  3. Notiere die Werte für Minimum und Maximum, die in den Achsenoptionen angezeigt werden.

Diese Methode ist jedoch nicht automatisiert und muss bei jeder Änderung des Diagramms wiederholt werden.


Praktische Beispiele

Beispiel für ein Punktdiagramm: Angenommen, du hast ein Punktdiagramm mit einer y-Achse, die Werte von 0 bis 100 darstellt. Mit dem oben genannten VBA-Code kannst du die maximalen und minimalen Werte schnell auslesen und in Zellen anzeigen.

Excel-Diagramm maximalwert anzeigen: Wenn du das Maximum der y-Achse in einer Zelle sehen möchtest, führe das Makro einfach aus, und der Wert wird bei jedem neuen Diagrammupdate in C1 angezeigt.


Tipps für Profis

  • Nutze Application.Volatile, um die Funktion so zu gestalten, dass sie bei jeder Änderung im Arbeitsblatt automatisch aktualisiert wird. Hierzu kannst du den folgenden Code verwenden:

    Function DiaAchsenMax() as Double
        Application.Volatile
        DiaAchsenMax = ActiveSheet.ChartObjects(1).Chart.Axes(xlValue).MaximumScale
    End Function
  • Achte darauf, dass die Funktion nur in dem Blatt funktioniert, in dem sich das Diagramm befindet.


FAQ: Häufige Fragen

1. Frage
Kann ich das Maximum und Minimum auch ohne VBA auslesen?
Antwort: Ja, du kannst die Werte manuell über die Excel Achsenoptionen ablesen, dies ist jedoch nicht automatisiert.

2. Frage
Wie kann ich sicherstellen, dass die Werte immer aktuell sind?
Antwort: Du kannst das Makro so anpassen, dass es sich automatisch aktualisiert, wenn sich die Daten im Arbeitsblatt ändern, indem du Application.Volatile verwendest.

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