Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1568to1572
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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

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
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?
Anzeige
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.


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
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

212 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige