Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eigenschaft von Datenpunkt im Diagramm

Eigenschaft von Datenpunkt im Diagramm
19.01.2007 18:31:15
Peter aus Berlin
Hallo alle zusammen,
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

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Eigenschaft von Datenpunkt im Diagramm
19.01.2007 19:47:00
K.Rola
Hallo,
du gibst deinen Level mit "VBA nein" an. Schaffst du eine Anpassung,
wenn ich dir ein Beipiel gebe?
Gruß K.Rola
AW: Eigenschaft von Datenpunkt im Diagramm
21.01.2007 18:41:38
Peter aus Berlin
Hallo K.Rola,
du kannst mir ein Beispiel geben.
Eine Anpassung müßte ich hinbekommen.
Grüße aus Berlin
AW: Eigenschaft von Datenpunkt im Diagramm
21.01.2007 19:01:39
K.Rola
Hallo,
wenn ich das richtig verstanden habe, befindet sich das Diagramm im Diagrammsheet.
Option Explicit
Private Sub Chart_MouseUp(ByVal Button As Long, ByVal Shift As Long, ByVal x As Long, ByVal y As Long)
Dim IDNum As Long, a As Long, b As Long
Dim sc As Series
Dim pt As Point
If Button = 1 Then
Me.GetChartElement x, y, IDNum, a, b
If IDNum = 3 Then
Application.ScreenUpdating = False
Set sc = Me.SeriesCollection(a)
Set pt = sc.Points(b)
sc.MarkerBackgroundColorIndex = 11
sc.MarkerSize = 6
pt.MarkerSize = 10
pt.MarkerBackgroundColorIndex = 3
Me.Deselect
Application.ScreenUpdating = True
End If
End If
Set sc = Nothing
Set pt = Nothing
End Sub

Keyboard not found, press F8 to continue or any key to abort!


Anzeige
Code läuft nicht wie er soll
22.01.2007 17:39:44
Peter aus Berlin
Hallo,
leider führt der Code nicht zu dem Ergebnis das ich brauche.
Zum einen verändern sich alle Punkte nach klick in Ihrer Farbe, zum anderen funktioniert der Textauswurf in Textbox 87 nicht mehr richtig.
Ich beschreibe mein Anliegen noch einmal näher.
1. Wenn ich einen Punkt anklicke soll dieser größer werden (Größe soll gleich der Zahl im Blatt "Hilfe" Zelle AR4 sein)(.MarkerSize = Sheets("Hilfe").Range("$AR$4").Value)
2. Wenn ich einen Punkt anklicke soll dieser einen schwarzen Rahmen bekommen (MarkerForegroundColor = RGB(0, 0, 0) ' schwarz)
3. Wenn ich einen Punkt anklicke soll seine BackgroundColor so bleiben wie sie war.
Ich muß, nachdem ich einen Punkt angeklickt habe, noch wissen welche Farbe er hat und auch welche Farben die anderen Punkte haben.
Diese wird vorher über ein anderes Makro für jeden einzelnen Punkt je nach Auswahl eines anderen Parameters immer neu bestimmt, d.h. die Punkte haben unterschiedliche Farben. Diese unterschiedlichen Farben repräsentieren Noten (von 1-6).
4. Wenn ich einen weiteren Punkt anklicke soll der vorherige seine ursprünglichen Eigenschaften wiederbekommen und der neu angeklickte sich wie der erste (in Punkt 1. bis 3. beschrieben) verhalten, usw..
Ich habe den von dir bereitgestellten Code nicht so um- und einbauen können das ich meine Wünsche realisieren konnte.
Ich bitte darum notwendige Anpassungen, in den folgenden, von mir verwendeten und für meine Textbox 87 schon funktionierenden Code, einzubauen.
Der Text für Textbox 87 wird aus Spalte A aus dem TabellenBlatt "Hilfe" ausgelesen, wenn CheckBox 21 ein Häckchen hat. In einer Zeile und in 3 Spalten nebeneinander stehen Text, X-Koordinate, Y-Koordinate. Bei jedem Klick auf einen Punkt wird somit der entsprechende Text ausgelesen.

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

Danke im voraus
Grüße aus Berlin
Anzeige
AW: Code läuft nicht wie er soll
22.01.2007 19:40:45
K.Rola
Hallo,
da sind ja nun noch einige Anforderungen hinzugekommen, sorry, dafür hab
ich keine Zeit.
Gruß K.Rola
zu
23.01.2007 22:57:47
zu
zu

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige