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

Format der y-Achse im Diagramm dynamisch

Forumthread: Format der y-Achse im Diagramm dynamisch

Format der y-Achse im Diagramm dynamisch
22.03.2017 16:41:46
Juliane
Hallo zusammen,
ich möchte ein Diagramm erstellen, bei dem der Nutzer über Optionsfelder auswählen kann, ob er die Werte absolut oder als Quote angezeigt bekommen möchte. Also z.B. wurden 3.000 Stück weniger als geplant verkauft oder 10% weniger.
Die Berechnung der Werte hat geklappt. In der Tabelle werden die Zahlen über eine bedingte Formatierung auch korrekt absolut bzw. als Prozentwert angezeigt.
Wenn ich nun darauf ein Diagramm erstelle, wird für die Einteilung der y-Achse nur die ursprüngl. Zellformatierung genutzt - unabhängig von der bedingten Formatierung. Hat von euch jemand eine Idee, wie man die Formatierung der Werte auf der y-Achse abhängig vom ausgewählten Optionsfeld (absolut oder relativ) gestalten kann?
Vielen Dank vorab für eure Unterstützung!
Viele Grüße Juliane
Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Format der y-Achse im Diagramm dynamisch
22.03.2017 18:24:15
Beverly
Hi Juliane,
lade eine Beispielmappe hoch, dann kann man das besser nachvollziehen.


AW: Meinst Du vielleicht so....
23.03.2017 09:14:43
Juliane
Hallo Michael,
so ähnlich sieht das Diagramm aktuell bei mir auch aus. Auf der y-Achse werden absolute Werte angezeigt. Einziger Unterschied ist, dass ich die Zellen als Zahl mit Tausender Trennpunkt und ohne Kommastelle formatiert habe, da meine absoluten Deltas relativ groß sind. Über eine bedingte Formatierung werden wie bei dir Prozente dargestellt, wenn man auf Quote umstellt.
Mein Wunsch wäre, dass man auch im Diagramm Prozentwerte (inkl. %-Zeichen) bekommt, wenn man bei Schalter "Quote" auswählt. Geht sowas auch?
Viele Grüße Juliane
Anzeige
Das ließe sich...
23.03.2017 11:02:02
Beverly
Hi Juliane,
...nur mit VBA lösen - für das Beispiel von Michael dazu folgenden Code ins Codemodul des Tabellenblattes:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Cells(1).Address(False, False) = "D4" Then
With ActiveSheet.ChartObjects(1).Chart.Axes(xlValue)
If Target.Value = "Quote" Then
.TickLabels.NumberFormat = "0%"
.Parent.SeriesCollection(1).DataLabels.NumberFormat = "0.0%"
Else
.TickLabels.NumberFormat = "#,##0"
.Parent.SeriesCollection(1).DataLabels.NumberFormat = "#,##0"
End If
End With
End If
End Sub


Anzeige
AW: Das ließe sich...
27.03.2017 15:38:24
Juliane
Hi Beverly,
vielen Dank für deine Antwort. Ich habe es auch schon ausprobiert, nur leider funktioniert es noch nicht. Meine Vermutung ist, dass es daran liegt, dass ich in dem Reiter meiner Datei mehrere Diagramme habe, von denen nur bei einem die Achse geändert werden soll.
Leider kenne ich mich mit VBA nicht gut aus. Könntest du mir hier bitte nochmal helfen?
Viele Grüße Juliane
Anzeige
AW: Das ließe sich...
27.03.2017 15:55:40
Beverly
Hi Juliane,
schreibe anstelle ChartObjects(1) den Namen des Diagramms, welches angepasst werden soll - z.B. ChartObjects("Diagramm 5")


AW: Das ließe sich...
28.03.2017 11:47:03
Juliane
Hi Beverly,
mit Angabe des Diagrammnamens funktioniert es leider auch noch nicht. Habe es als Test mit verschiedenen Diagrammen probiert, aber die Formatierung der y-Achse hat sich nie verändert.
Hast du eine Idee, woran es noch liegen könnte?
File hochladen geht leider nicht, da vertrauliche Daten enthalten sind.
Viele Grüße Juliane
Anzeige
Beispielmappe erforderlich
28.03.2017 13:13:55
Beverly
Hi Juliane,
erstelle eine Kopie deiner Mappe mit Dummydaten und lade diese hoch, denn Ferndiagnosen sind bei dieser Art an Problemen nicht möglich.


AW: Beispielmappe erforderlich
28.03.2017 16:54:44
Juliane
Hi Berverly,
wie schon geschrieben ist es mit einem Dateiupload schwierig, die Datei zu anonymisieren würde viel Aufwand bedeuten. Ich habe selber noch etwas rumgespielt und ausprobiert und habe dabei fast, aber halt leider nur fast, eine Möglichkeit gefunden:
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("$AK$42").Value = 2 Then
ActiveSheet.ChartObjects("Diagramm 37").Activate
ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "0,0%"
Else
ActiveSheet.ChartObjects("Diagramm 37").Activate
ActiveChart.Axes(xlValue).TickLabels.NumberFormat = "#.##0"
End If
Range("AK42").Select
End Sub

In AK42 steht entweder 1 für absolute Werte oder 2 für Prozentwerte.
Trage ich diese Zahlen händisch ein, funktioniert der Code. Das Problem ist, dass der Anwender über Optionsfelder diese Wahl trifft und das Ergebnis davon als 1 oder 2 in der Zelle AK42 ausgegeben wird. Ändert sich der Wert der Zelle AK42 nur durch das Betätigen der Optionsfelder, ändert sich an der Formatierung der y-Achse leider nichts.
Wie kann man denn mein Beispiel oder deinen Vorschlag abändern, damit die Auswahl mit den Optionsfeldern berücksichtigt wird?
Vielen Dank für deine Unterstütung!
Anzeige
Gut, wenn du meinst...
28.03.2017 17:19:23
Beverly
Hi,
...dass der Aufwand zu groß ist, obwohl es ganz einfach ist, eine Kopie des Originals als Beispielmappe nur mit den relevanten Daten und dem betreffenden Diagramm zu erstellen ...
Was ist daran so kompliziert, in meinem Code anstelle ChartObjects(1) zu schreiben: ChartObjects("Diagramm 37") und außerdem zu prüfen, ob AK42 eine 2 enthält?
Aktivate braucht man dazu überhaupt nicht und dann muss man auc nicht im Anschluss wieder eine Zelle selektieren.


Anzeige
AW: Gut, wenn du meinst...
28.03.2017 17:28:19
Juliane
Das hatte ich in deinem Code probiert, aber es funktioniert nicht. Egal was man bei den Optionsfeldern ausgewählt hat, es hat sich nichts verändert.
Von daher habe ich ausprobiert, ob auch was anderes funktionieren könnte.
Was für OptionButton?
28.03.2017 17:37:09
Beverly
Dass es in Michaels Mappe funktioniert, hast du ja sicher gesehen. Aber da niemand deine Mappe kennt, kann auch niemand sagen, was bei dir falsch läuft.
Eventuell kannst du ja das Click-Ereignis der OptionButton verwenden.


Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Dynamische Formatierung der y-Achse in Excel-Diagrammen


Schritt-für-Schritt-Anleitung

  1. Erstelle deine Datenbasis: Stelle sicher, dass du eine Tabelle hast, in der die Werte sowohl absolut als auch relativ dargestellt werden. Nutze eine bedingte Formatierung, um die Sichtbarkeit der Werte zu verbessern.

  2. Diagramm erstellen: Wähle die Daten aus und erstelle ein Diagramm (z.B. ein Balkendiagramm oder Liniendiagramm), um die Informationen visuell darzustellen.

  3. Optionsfelder einfügen: Füge Optionsfelder (OptionButton) in dein Arbeitsblatt ein, um zwischen absoluter und relativer Darstellung zu wählen.

  4. VBA-Code hinzufügen: Gehe zu den Entwicklertools und öffne den VBA-Editor. Füge den folgenden Code in das Codemodul des Tabellenblattes ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Cells(1).Address(False, False) = "D4" Then
       With ActiveSheet.ChartObjects("Diagramm 5").Chart.Axes(xlValue)
           If Target.Value = "Quote" Then
               .TickLabels.NumberFormat = "0%"
               .Parent.SeriesCollection(1).DataLabels.NumberFormat = "0.0%"
           Else
               .TickLabels.NumberFormat = "#,##0"
               .Parent.SeriesCollection(1).DataLabels.NumberFormat = "#,##0"
           End If
       End With
    End If
    End Sub
  5. Testen: Teste die Funktionalität, indem du die Optionsfelder betätigst und beobachtest, ob sich die y-Achse des Diagramms entsprechend ändert.


Häufige Fehler und Lösungen

  • Diagrammname nicht korrekt: Achte darauf, dass der Name des Diagramms im VBA-Code exakt mit dem Namen in Excel übereinstimmt. Beispiel: ChartObjects("Diagramm 37").

  • Optionsfelder nicht erkannt: Stelle sicher, dass die Optionsfelder korrekt mit der Zelle verbunden sind, sodass die Auswahl in die Zelle eingetragen wird.

  • VBA nicht aktiviert: Überprüfe, ob Makros in deiner Excel-Datei aktiviert sind. Andernfalls wird der VBA-Code nicht ausgeführt.


Alternative Methoden

  • Direkte Zellverknüpfung: Statt VBA kannst du auch die Zellverknüpfung nutzen. Ändere die Formatierung der Zelle, worauf das Diagramm basiert, direkt und aktualisiere das Diagramm manuell.

  • Diagramm dynamisch gestalten: Nutze die Funktion "Datenquelle ändern" in Excel, um die Werte und deren Darstellung dynamisch zu gestalten, ohne auf VBA zurückzugreifen.


Praktische Beispiele

  1. Balkendiagramm selbst gestalten: Erstelle ein Balkendiagramm, das absolute Verkaufszahlen anzeigt und wechsle zu den relativen Prozenten mit den Optionsfeldern.

  2. Liniendiagramm selbst gestalten: Verwende ein Liniendiagramm, um Trends über Zeit darzustellen. Die y-Achse kann dynamisch zwischen absoluten Werten und prozentualen Veränderungen umgeschaltet werden.


Tipps für Profis

  • Fehlerbehandlung im VBA: Füge Fehlerbehandlungsroutinen im VBA-Code hinzu, um unerwartete Fehler abzufangen.

  • Diagramm-Formatierung: Experimentiere mit verschiedenen Diagrammformaten und -stilen, um die Lesbarkeit und das Design deiner Diagramme zu verbessern.


FAQ: Häufige Fragen

1. Warum funktioniert mein VBA-Code nicht?
Prüfe, ob der Diagrammname im Code mit dem tatsächlichen Namen in Excel übereinstimmt und ob Makros aktiviert sind.

2. Kann ich die y-Achse auch ohne VBA dynamisch gestalten?
Ja, du kannst die Datenquelle des Diagramms dynamisch ändern, indem du die Zellverknüpfung nutzt, anstatt VBA zu verwenden.

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