AW: Diagramm mit 3 zueinander abhängigen Achsen
06.10.2011 17:17:24
fcs
Hallo Andreas,
mit der 2. Y-Achse bist du doch irgendwie auf dem Holzweg.
Du hast hier doch das klassische XY-Punktdiagramm mit ca. 19 Datenreihen.
Wenn du hier ohne Legende arbeiten willst und mit der gleichen Farbe für alle Linien, dann kannst du den letzen Datenpunkt beschriften und dort den Namen der Datenreihe (Temperatur) anzeigen. Aber eine Skala oder Achse macht absolut keinen Sinn, bzw. ist in Excel hier auch nicht möglich.
https://www.herber.de/bbs/user/76885.xlsx
Siehe Diagramm 2. Wichtig ist hier, dass als Reihenname die Temperaturen verwendet werden. Funktioniert bei der Diagrammerstellung automatisch wenn der Inhalt der Zelle A21 (Feldweite m Temperatur °C) vor der Markierung des Datenbereichs für das Diagramm entfernt wird.
Wenn du dir die doch recht mühsehlige Handarbeit bei der Beschriftung ersparen willst, dann hilft das nachfolgende Makro.
Gruß
Franz
'Erstellt unter Excel 2007
Sub Diagramm_Formatieren()
Dim oChart As Chart
Dim oReihe As Series, oPunkt As Point
Set oChart = ActiveChart
With oChart
For Each oReihe In .SeriesCollection
With oReihe
.HasDataLabels = False 'Beschriftung zurücksetzen
.Format.Line.ForeColor.RGB = 255 'Rot - Linienfarbe
.Format.Line.Weight = 1.5 'Linienbreite
'letzten Datenpunkt der Datenreihen beschriften mit Reihenname
Select Case Val(oReihe.Name)
Case 25, 35, 45, 55, 65
'nicht beschriften
Case Else
Set oPunkt = .Points(.Points.Count)
With oPunkt
.HasDataLabel = True
With .DataLabel
.Orientation = xlHorizontal
.Position = xlLabelPositionRight
.ShowSeriesName = True
.ShowValue = False
.ShowCategoryName = False
.ShowLegendKey = False
End With
End With
End Select
'3. Datenpunkt der Datenreihen beschriften mit Reihenname
Select Case Val(oReihe.Name)
Case Is >= 25
'nicht beschriften
Case Else
Set oPunkt = .Points(3)
With oPunkt
.HasDataLabel = True
With .DataLabel
.Orientation = xlHorizontal
.Position = xlLabelPositionAbove
.ShowSeriesName = True
.ShowValue = False
.ShowCategoryName = False
.ShowLegendKey = False
.VerticalAlignment = xlBottom
End With
End With
End Select
End With
Next oReihe
End With
End Sub