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

Forumthread: Linie in der Diagramm-Legende ausblenden

Linie in der Diagramm-Legende ausblenden
M.Bacher
Hallo zusammen,
Ich habe mir eine Excel-Datei zur Darstellung von Kurven aufgebaut. Sie wird durch ein externes Programm mit dessen Excel-Export-Funktion „gefüttert“. Ich nenne in diesem externen Programm den Excel-Dateinamen und das Programm erzeugt in der genannten Excel-Datei ein neues Tabellenblatt „Tabelle 1“. Die dort importierten Werte (Header und 2 Spalten mit x/y-Werten) ziehe ich mir durch
=WENN(ISTFEHLER(INDIREKT(ADRESSE(ZEILE(A1381);2;;;"Tabelle1")));"";INDIREKT(ADRESSE(ZEILE(A1381);2;;; "Tabelle1")))
in ein bereits vorhandenes Tabellenblatt „DATENVERARBEITUNG“. Vorverlinkt sind 10 mögliche Tabellenblätter. Eine weitere Tabelle wird durch das ext. Programm automatisch mit „Tabelle 2“ , die nächste mit „Tabelle 3“ usw. fortlaufend eingefügt.
Über eine weitere Berechnung in der Tabelle „DATENVERARBEITUNG“ gebe ich dann beispielhaft folgende Werte an das Diagramm ( in einem Tabellbenblatt „DIAGRAMM“) weiter:
=WENN(ISTFEHLER(MITTELWERT(E$2:E103));-10;MITTELWERT(E$2:E103))
Somit macht es mir bei fehlendem Tabellenblatt eine Kurve ins Diagramm die eine Gerade bei
y=-10 ausgibt. Da die Skalierung der y-Achse von 0-80 fest eingestellt ist, sieht man diese Kurven dann auch nicht. Kommt ein Tabellenblatt hinzu, ersetzt die Berechnung die "Gerade" bei -10 durch die realen Werte und stellt sie entsprechend dar. Der Legendeneintrag ist entsprechend auch kein Problem. Bis hierhin ist alles bestens! Problem ist nur die davor gesetzte Linie in der Legende. Sie hat ja eine voreingestellte Farbe und Stärke. Wie kann ich dies automatisch ausblenden oder die Kurvenfarbe "weiß" machen, wenn das entsprechende Tabellenblatt nicht vorhanden ist? Ich habe schon einiges hier durchgesucht, aber nicht das richtige gefunden.
Danke für Eure Hilfe.
Gruß Mario
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Linie in der Diagramm-Legende ausblenden
21.02.2012 16:52:46
Beverly
Hi Mario,
man kann die betreffenden Zeilen (Spalten) im Tabellenblatt ausblenden, dann werden sie im Diagramm/in der Legende nicht dargestellt.


AW: Linie in der Diagramm-Legende ausblenden
22.02.2012 09:10:45
M.Bacher
Hallo Karin, danke für Deine Antwort.
Wie könnte das aussehen, das es automatisch geht?
Auf "DATENVERARBEITUNG" gehören die Spalten E und F zur eingefügten Tabelle1. G,H zu Tabelle2, I,J zu Tabelle3, usw...
Wie müsste die Anweisung denn lauten wenn Tabelle1 (oder 2,3,4,usw.) nicht vorhanden ist, das die Spalten G,H automatisch ausgeblendet und wenn die Tabelle1 "importiert" wird, sich die Spalten einblenden?
Ich hatte jetzt noch einen anderen Ansatz:
Sub Linie1_weg()
ActiveChart.Legend.Select
ActiveChart.Legend.LegendEntries(2).LegendKey.Select
With Selection.Border
.Weight = xlThick
.LineStyle = xlNone
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
ActiveChart.ChartArea.Select
End Sub
Sub Linie1_da()
ActiveChart.Legend.Select
ActiveChart.Legend.LegendEntries(2).LegendKey.Select
With Selection.Border
.ColorIndex = 5
.Weight = xlThick
.LineStyle = xlContinuous
End With
With Selection
.MarkerBackgroundColorIndex = xlNone
.MarkerForegroundColorIndex = xlNone
.MarkerStyle = xlNone
.Smooth = False
.MarkerSize = 5
.Shadow = False
End With
ActiveChart.ChartArea.Select
End Sub
Wenn ich auf dem Tabellenblatt "DIAGRAMM" bin und starte die Makros, löscht sich die Linie entsprechend raus oder erscheint wieder. Leider geht das momentan nur per klick im Menü Makro ausführen. Wie kann das automatisch gehen, sobald ich das Tabellenblatt "DIAGRAMM" anklicke?
Gruß Mario
Anzeige
AW: Linie in der Diagramm-Legende ausblenden
22.02.2012 09:50:00
Beverly
Hi Mario,
jedes Tabellenblatt hat ein Activate-Ereignis - darin kannst du das betreffende Makro aufrufen und somit starten.
Ich meinte jedoch etwas anderes: nicht so wie dein Code in der Legende des Diagramms den Legendeneintrag auf "unsichtbar" bzw. "sichtbar" setzen sondern im Tabellenblatt, auf welches sich das Diagramm bezieht (wenn ich das richtig verstanden habe ist es das Tabellenblatt "DIAGRAMM"), die Spalten aus-bzw. einblenden.


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Linie in der Diagramm-Legende ausblenden


Schritt-für-Schritt-Anleitung

  1. Diagramm erstellen: Zuerst benötigst Du ein Diagramm, welches die Daten aus Deinem Arbeitsblatt anzeigt. Stelle sicher, dass die Daten in der Tabelle korrekt formatiert sind.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Modul hinzufügen: Klicke mit der rechten Maustaste auf "VBAProject (DeineDatei.xlsx)" und wähle "Einfügen" > "Modul".

  4. Makro für das Ausblenden der Linie erstellen: Füge den folgenden VBA-Code in das Modul ein:

    Sub LinieAusblenden()
       Dim lege As LegendEntry
       Set lege = ActiveChart.Legend.LegendEntries(2)
       With lege.Border
           .LineStyle = xlNone
       End With
    End Sub
  5. Makro für das Einblenden der Linie erstellen: Füge einen weiteren Sub hinzu, um die Linie wieder sichtbar zu machen:

    Sub LinieEinblenden()
       Dim lege As LegendEntry
       Set lege = ActiveChart.Legend.LegendEntries(2)
       With lege.Border
           .LineStyle = xlContinuous
           .ColorIndex = 5
       End With
    End Sub
  6. Aktivierungsereignis hinzufügen: Um die Makros automatisch auszuführen, wenn Du das Diagramm-Tabellenblatt auswählst, füge den folgenden Code in das "DIAGRAMM"-Objekt im VBA-Editor ein:

    Private Sub Worksheet_Activate()
       If Not IsEmpty(Sheet1.Range("E2")) Then
           Call LinieEinblenden
       Else
           Call LinieAusblenden
       End If
    End Sub
  7. Speichern und Testen: Speichere Deine Änderungen und teste das Diagramm, indem Du zwischen den Tabellenblättern wechselst.


Häufige Fehler und Lösungen

  • Fehler: Linie wird nicht ausgeblendet
    Lösung: Stelle sicher, dass Du das richtige Legendenelement (z.B. LegendEntries(2)) ansprichst. Überprüfe auch die Diagrammreferenz.

  • Fehler: Makros funktionieren nicht
    Lösung: Aktiviere die Makros in Excel, indem Du unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen die entsprechenden Optionen auswählst.


Alternative Methoden

  • Diagrammtools verwenden: Du kannst auch die Diagrammtools in Excel verwenden, um die Legende manuell zu bearbeiten. Rechtsklicke auf die Legende und wähle "Legende formatieren". Hier kannst Du die Sichtbarkeit der Legende anpassen.

  • Datenreihe filtern: Eine andere Möglichkeit, die Legende zu beeinflussen, ist das Filtern der Datenreihe. Wenn eine Datenreihe keinen Wert hat, wird sie in der Legende nicht angezeigt.


Praktische Beispiele

  • Beispiel 1: Du hast ein Diagramm mit mehreren Linien, und möchtest eine bestimmte Linie ausblenden, wenn die zugehörigen Daten nicht vorhanden sind. Verwende die oben beschriebenen Makros.

  • Beispiel 2: Wenn Du die Excel-Diagrammtools verwendest, kannst Du die Legende direkt an die Linien im Diagramm anpassen, indem Du die Formatierung der Linien veränderst.


Tipps für Profis

  • Automatisierung: Nutze das Worksheet_Activate-Ereignis, um Makros automatisch beim Wechseln zwischen Tabellenblättern auszuführen.

  • Fehlermeldungen minimieren: Verwende Fehlerbehandlungsroutinen in Deinen Makros, um sicherzustellen, dass Dein Code auch bei unerwarteten Daten stabil läuft.


FAQ: Häufige Fragen

1. Wie kann ich die Legende direkt an die Linie im Diagramm anzeigen?
Du kannst die Legende formatieren, indem Du die Option "Legende formatieren" und "Legende direkt an Linie" auswählst.

2. Gibt es eine Möglichkeit, leere Werte in der Legende auszublenden?
Ja, Du kannst die Datenreihe so einstellen, dass leere Werte nicht angezeigt werden, indem Du die Datenquelle entsprechend bearbeitest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige