Hallo Experten,
ich mache einen zweiten Versuch: Ich habe ein Excel-Diagrammblatt mit einem X-Y-Diagramm. Die X-Achsenbereich geht von 0-20. Nun möchte ich per VBA die X-Koordinate ermitteln, auf die der Benutzer klickt. Mit dem MouseDown-Ereignis kann ich die X-Koordinate des Klicks (laut Excel-Hilfe) in „Diagramm-Client-Koordinaten“ ermitteln. Wie immer die definerte sein mögen, keine Ahnung. Die „InsideLeft“-Eigenschaften der PlotArea gibt mir den Abstand vom linken Diagrammrand (wie immer der definiert sein mag) in Points, und die „InsideWidth“-Eigenschaften der PlotArea gibt mir die Breite des Diagramms in Points an.
Gibts eine Möglichkeit, um aus diesen Angaben die X-Koordinate zu ermitteln, auf die ein Benutzer klickt. Und das möglichst auch für jeden Zoomfaktor, den der Benutzer eingestellt hat.
Kurzer Beispielcode:
Sub Koordinaten()
With Charts(1)
.SizeWithWindow = True
MsgBox „InsideLeft=“ & .PlotArea.InsideLeft
MsgBox „InsideWidth=“ & .PlotArea.InsideWidth
End With
End Sub
Private Sub Chart_MouseDown(ByVal Button As Long, ByVal Shift As Long, ByVal X As Long, ByVal Y As Long)
MsgBox „X=“ & X
End Sub
Lasse ich das Sub „Koordinaten“ laufen, erhalte ich:
InsideLeft=29
InsideWidth=912
Klicke ich irgendwo ins Diagramm, erhalte ich z.B.
X=651
Wie kann ich jetzt aus dieser 651 berechnen, wo ich hingeklickt habe? (in diesem Fall habe ich genau in die Mitte, auf 10 geklickt).
Für jede Antwort dankbar.
Gruß Andreas
WinXP SP2, Excel97