AW: Label in XY Scatter Chart
01.12.2011 00:03:38
fcs
Hallo Marco,
automatisiert geht nur per Makro.
Das nachfolgende Makro beschriftet die einzelnen Datenpunkte der 1. Datenreihe mit den Zellen links von den Werten der X-Achse. Makro getestet unter Excel 2007 (deutsch).
Gruß
Franz
P.S.: Das Makro kannst in ein allgemeines Modul deiner persönlichen Makroarbeitsmappe einfügen.
Sub Diagrammreihe_Daten_beschriften()
Dim oChart As Chart, oReihe As Series, oPunkt As Point, intPunkt As Integer
Dim vFormel As Variant, strSheet As String, strRange As String, oRange As Range
'Wenn Diagramm als Objekt auf einem Tabellenblatt
Set oChart = ActiveSheet.ChartObjects(1).Chart
' oder wenn Diagramm auf separatem Blatt
'Set oChart = Charts("Diagramm 1")
Set oReihe = oChart.SeriesCollection(1)
oReihe.HasDataLabels = True
vFormel = oReihe.FormulaLocal
vFormel = Split(vFormel, ";")
strSheet = Left(vFormel(1), InStr(vFormel(1), "!") - 1)
strRange = Mid(vFormel(1), InStr(vFormel(1), "!") + 1)
If Left(strSheet, 1) = "'" Then
Set oRange = Worksheets(Mid(strSheet, 2, Len(strSheet) - 2)).Range(strRange)
Else
Set oRange = Worksheets(strSheet).Range(strRange)
End If
intPunkt = 0
For Each oPunkt In oReihe.Points
intPunkt = intPunkt + 1
oPunkt.DataLabel.Text = "=" & strSheet & "!" _
& oRange.Cells(intPunkt, 1).Offset(0, -1).Address(ReferenceStyle:=xlA1)
Next
End Sub