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

Forumthread: Makro, Horizontale Line in Diagamm einfügen

Makro, Horizontale Line in Diagamm einfügen
13.07.2017 09:49:26
Sven
Hallo zusammen,
ich verwende Office 2016.
Ich erstelle mir mit einem Makro drei Liniendiagramme aus Daten, die in drei Spalten stehen. Das Funktioniert auch soweit.

'Diagramme erstellen
Sheets("Tabelle1").Select
Range("A" & grenze).Select
Range(Selection, Selection.End(xlUp)).Select
Range("A3:A" & grenze).Select
Range("A" & grenze).Activate
ActiveSheet.Shapes.AddChart2(240, xlXYScatterSmoothNoMarkers).Select
ActiveChart.SetSourceData Source:=Range("Tabelle1!$A$3:$A$" & grenze)
'Diagramm anpassen
ActiveSheet.ChartObjects("Diagramm 1").Activate
ActiveChart.Axes(xlValue).Select
ActiveChart.Axes(xlValue).MinimumScale = 0
ActiveChart.Axes(xlValue).MaximumScale = 200
ActiveChart.Axes(xlCategory).Select
ActiveChart.Axes(xlCategory).MinimumScale = 0
ActiveChart.Axes(xlCategory).MaximumScale = max
ActiveChart.SetElement (msoElementLegendRight)
ActiveChart.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
ActiveChart.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
ActiveChart.SetElement (msoElementChartTitleAboveChart)
ActiveChart.FullSeriesCollection(1).Name = "=""Diagramm Titel"""
ActiveChart.FullSeriesCollection(1).Border.ColorIndex = 3
ActiveSheet.Shapes("Diagramm 1").IncrementLeft -400
ActiveSheet.Shapes("Diagramm 1").IncrementTop -400

Nun habe ich für jedes dieser Diagramme Min. und Max. Grenzwerte zwischen denen die Werte in der jeweiligen Spalten liegen sollten. Um nun in den Diagrammen direkt zu sehen ob dort Werte außerhalb dieser Grenzen liegen, würde ich gerne in jedes Diagramm zwei Horizontale Linien einfügen; einmal bei der unteren und einmal bei der oberen Grenze.
Allerdings habe ich das noch nicht hinbekommen. Folgend mal meine Versuche das zu lösen, was allerdings nicht wirklich funktioniert. Es wird zwar eine Linie gezeichnet, aber die ist außerhalb des Diagrammbereichs.

startX = ActiveChart.PlotArea.InsideLeft
startY = 1.7
endX = grenze
endY = 1.7
ActiveChart.Shapes.AddLine(startX, startY, endX, endY).Select

Wäre klasse, wenn mir da jemand weiterhelfen könnte.
Vielen Dank!
Beste Grüße
Anzeige

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

Betreff
Datum
Anwender
Anzeige
Wozu Makro?
13.07.2017 10:15:55
Beverly
Hi Sven,
wozu musst du die Linien als extra Elemente einfügen? Du kannst die doch ganz normal als 2 zusätzliche Datenreihen ins Diagramm integrieren...


AW: Wozu Makro?
13.07.2017 13:26:53
Sven
Hallo,
mit dem Makro mit welchem die Diagramme erstellt werden usw. werden vorher Daten in Sheet 1 sortiert, ein Teil der Daten wird dann sortiert in Sheet 2 kopiert. Es werden dann Diagramme erstellt usw. dabei sollen dann eben noch die entsprechenden Linien eingefügt werden.
Nach Möglichkeit soll das dann natürlich alles in einem Arbeitsgang passieren, so dass man nicht hinterher von Hand da noch Anpassungen an den Diagrammen vornehmen muss.
Beste Grüße
Anzeige
AW: Wozu Makro?
13.07.2017 14:10:13
Beverly
Hi,
und wo ist da das Problem, die Datenreihen gleich noch zus#tzlich ins Diagramm einzufügen, wenn du das Diagramm schon per Makro erstellst...?


AW: Wozu Makro?
13.07.2017 17:15:53
Sven
Hallo,
ich dachte es gäbe noch eine andere Möglichkeit zusätzliche Linien in ein Diagramm einzufügen, als diese als zusätzliche Datenreihen einzufügen.
Beste Grüße
Anzeige
AW: Wozu Makro?
13.07.2017 17:17:59
Sven
Müsste ich dann die Datenreihen auch erst in dem entsprechenden Datenblatt komplett erstellen, also die entsprechenden Werte in zwei Spalten eintragen und diese Daten dann mit in das Diagramm übernehmen?
AW: Wozu Makro?
13.07.2017 18:44:12
Beverly
Nein, musst du nicht, du kannst die betreffenden Werte direkt im Diagramm anstelle der Zellbezüge eingeben.


Anzeige
AW: Wozu Makro?
17.07.2017 07:56:54
Sven
Hallo,
Ok.
Wie kann ich die festen Werte dann übergeben? Aktuell erstelle ich die Diagramme ja wie folgt, bzw. füge die entsprechenden Daten in ein Diagramm ein.

ActiveChart.SetSourceData Source:=Range("Tabelle1!$A$3:$A$" & ende)

Vielen Dank!
Beste Grüße
Anzeige
VBA Diagramm: Werte direkt übergeben
17.07.2017 08:31:56
Beverly
Hi,
nach diesem Prinzip:
    With ActiveSheet.ChartObjects(1).Chart
With .SeriesCollection.NewSeries
.XValues = "={1,9}"
.Values = "={5.5,5.5}"
End With
End With

Bachte: es muss die englische Interpunktion verwendet werden - als Trenner zwischen den Werten ein "," und als Dezimalzeichen (falls erforderlich) ein ".". Im Beispiel werden als X-Werte die Werte 1 und 9 zugewiesen sowie jeweils 5,5 als Y-Werte. Da du ein Punkt-Diagramm verwendest sind 2 Werte (Min und Max) für die Datenreihe ausreichend.


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Horizontale Linien in Excel-Diagrammen einfügen


Schritt-für-Schritt-Anleitung

Um eine horizontale Linie in einem Excel-Diagramm einzufügen, kannst du folgende Schritte befolgen. Diese Anleitung basiert auf Excel 2016:

  1. Erstelle dein Diagramm, indem du die benötigten Daten in Excel auswählst und dann über das Menü Einfügen -> Diagramm ein Diagramm erstellst.

  2. Um eine horizontale Linie als Referenzlinie hinzuzufügen, gehe in den VBA-Editor (Alt + F11) und füge ein neues Modul ein.

  3. Verwende den folgenden Code, um eine konstante Linie in dein Diagramm einzufügen:

    Sub HorizontaleLinieEinfügen()
        Dim myChart As Chart
        Set myChart = ActiveSheet.ChartObjects(1).Chart
    
        ' Werte für die horizontale Linie
        Dim grenzwert As Double
        grenzwert = 5.5 ' Beispielwert für die Linie
    
        With myChart.SeriesCollection.NewSeries
            .XValues = "={1,9}" ' X-Werte für die Linie
            .Values = "={" & grenzwert & "," & grenzwert & "}" ' Y-Wert konstant
        End With
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus, um die horizontale Linie in deinem Diagramm zu sehen.


Häufige Fehler und Lösungen

  • Problem: Die Linie erscheint außerhalb des Diagrammbereichs.

    • Lösung: Stelle sicher, dass die Y-Werte korrekt und innerhalb der Skala deines Diagramms liegen. Überprüfe die minimalen und maximalen Werte der Achsen.
  • Problem: Die Linie wird nicht angezeigt.

    • Lösung: Überprüfe, ob die Werte korrekt eingegeben sind und dass die Datenreihe nicht versehentlich versteckt ist.

Alternative Methoden

Eine weitere Methode, um eine horizontale Linie in einem Excel-Diagramm einzufügen, ist die Verwendung von Datenreihen:

  1. Füge die Grenzwerte in das Datenblatt ein, z.B. in zwei benachbarte Zellen.
  2. Wähle dein Diagramm aus und klicke mit der rechten Maustaste auf das Diagramm, wähle Daten auswählen.
  3. Füge eine neue Datenreihe hinzu und wähle die Zellen mit deinen Grenzwerten als Y-Werte aus.

Diese Methode ist einfach und benötigt keine VBA-Programmierung.


Praktische Beispiele

Für die Erstellung eines Liniendiagramms mit zwei horizontalen Linien für obere und untere Grenzwerte kannst du folgendes Beispiel verwenden:

Sub BeispielMitGrenzwerten()
    Dim myChart As Chart
    Set myChart = ActiveSheet.ChartObjects(1).Chart

    ' Grenzwerte
    Dim untererGrenzwert As Double
    Dim obererGrenzwert As Double
    untererGrenzwert = 3.0
    obererGrenzwert = 7.0

    ' Untere Linie
    With myChart.SeriesCollection.NewSeries
        .XValues = "={1,9}"
        .Values = "={" & untererGrenzwert & "," & untererGrenzwert & "}"
    End With

    ' Obere Linie
    With myChart.SeriesCollection.NewSeries
        .XValues = "={1,9}"
        .Values = "={" & obererGrenzwert & "," & obererGrenzwert & "}"
    End With
End Sub

Tipps für Profis

  • Nutze die Chart-Tools in Excel, um das Design deiner Linien anzupassen.
  • Experimentiere mit verschiedenen Diagrammtypen, um die beste Darstellung für deine Daten zu finden.
  • Verwende die Funktion Datenbeschriftungen, um die Werte der Linien direkt im Diagramm anzuzeigen.

FAQ: Häufige Fragen

1. Wie kann ich eine Referenzlinie in einem Balkendiagramm einfügen?
Du kannst eine Referenzlinie hinzufügen, indem du die gleichen Schritte wie oben beschrieben befolgst. Stelle sicher, dass du die Datenreihe korrekt einfügst.

2. Welche Excel-Version wird benötigt?
Die oben genannten Methoden funktionieren in Excel 2016 und neueren Versionen. In älteren Versionen können die Schritte leicht variieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige