Eigenschaft von Datenpunkt im Diagramm
19.01.2007 18:31:15
Peter aus Berlin
ich habe ein x,y-Punktdiagramm.
Wenn ich auf einen Punkt klicke soll dieser hervorgehoben sein. (z.B. größer werden und Rahmen (MarkerForegroundColor) bekommen.)
Wenn ich den nächsten Punkt anklicke soll der vorher angeklickte Punkt wieder seine ursprünglichen Eigenschaften bekommen.
Der folgende Code bewirkt noch andere Dinge die schon funktionieren.
Private Sub Chart_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal y As Long)
Dim ElementID As Long, Arg1 As Long, Arg2 As Long
Dim myX As Variant, myY As Double
' kurzzeitig die Aktualisierung der Darstellung unterbrechen
Application.ScreenUpdating = False
With ActiveChart
' Pass x & y, return ElementID and Args
.GetChartElement X, y, ElementID, Arg1, Arg2
' Did we click over a point or data label?
If ElementID = xlSeries Or ElementID = xlDataLabel Then
If Arg2 > 0 Then
' Extract x value from array of x values
myX = WorksheetFunction.Index _
(.SeriesCollection(Arg1).XValues, Arg2)
' Extract y value from array of y values
myY = WorksheetFunction.Index _
(.SeriesCollection(Arg1).Values, Arg2)
' aktuelle Werte für den nächsten klick merken
altx = Arg1
alty = Arg2
' In die Textbox den Text eintragen
If .Shapes("Check Box 21").ControlFormat.Value = 1 Then
Charts("Pflanzungs-Karte").Shapes("Text Box 87").Visible = True
Charts("Pflanzungs-Karte").Shapes("Text Box 87").Select
Selection.Characters.Text = Worksheets("Hilfe").Range("A" & Arg2 + 3)
Else
Charts("Pflanzungs-Karte").Shapes("Text Box 87").Visible = False
End If
' DAS IST DER TEIL DER MEIN PROBLEM BETRIFFT !!!!!!!!!!!!
' angeklickten Punkt mit schwarzen Rahmen markieren und größer machen
With Charts("Pflanzungs-Karte").SeriesCollection(1).Points(50)
.MarkerForegroundColor = RGB(0, 0, 0) ' schwarz
.MarkerSize = Sheets("Hilfe").Range("$AR$4").Value
End With
Else
Charts("Pflanzungs-Karte").Shapes("Text Box 87").Visible = False
End If
' Select auf das gesamte Diagramm setzen, damit die Punkte nicht Lila sind
ActiveChart.ChartArea.Select
Else
Charts("Pflanzungs-Karte").Shapes("Text Box 87").Visible = False
End If
End With
' Aktualisierung der Darstellung wieder anschalten
Application.ScreenUpdating = True
End Sub
Der dem Teil in dem ich mein Problem lösen möchte habe ich im Moment den Punkt 50 bestimmt, weil ich nicht weiß wie ich den angeklickten Punkt bestimmen kann.
Wie muß es richtig sein?
Grüße aus Berlin