Hallo VBA-Experten,
bei Excel 2003 konnte man in einem X-Y-Diagramm auf einen Datenpunkt klicken und ihn dann mit der Maus an andere Koordinaten ziehen. Die dazugehörigen Zellen in der Tabelle wurden automatisch mit geändert.
Seit Excel 2007 geht das ja leider nicht mehr:
http://www.pctipp.ch/forum/showthread.php?t=17634
Ich wollte jetzt mal versuchen, ob ich diese Funktionalität selber nachbauen kann (ich hab’s gesehen: Auf der verlinkten Seite wird ein Add-In erwähnt, was das wohl kann. Es hat mich aber gereizt, es mal selber zu versuchen).
Ein paar Vorversuche mit den MouseDown-, MouseMove- und MouseUp Events habe ich gemacht. Klappt auch schon teilweise.
Mit GetChartElement kann ich auch die Datenreihe und den Datenpunkt finden, auf den ich geklickt habe.
Und hier kommt meine eigentliche Frage:
Wie kann ich die zu diesem Punkt gehörenden Zellen für die X- und Y-Koordinate herausfinden? Dort muss der Makro ja die neuen Werte eintragen.
Meine erste Idee war, die „Formula“ der Datenreihe auseinander zu pflücken, also Stringanalyse. Das wäre bei einer einfachen Formel wie
=DATENREIHE(;Tabelle1!$A$1:blush:A$10;Tabelle1!$B$1:blush:B$10;1)
noch machbar. Aber bei Sachen wie
=DATENREIHE(;(Tabelle1!$D$1:blush:D$3;Tabelle1!$D$5:blush:D$7;Tabelle1!$D$9:blush:D$12);(Tabelle1!$E$1:blush:E$3;Tabelle1!$E$5:blush:E$7;Tabelle1!$E$9:blush:E$12);2)
geht es doch gewaltig an die Schmerzgrenze.
Nächste Idee war, nicht über „Formula“, sondern über „XValues“ und „Values“, also z.B.:
Sub punkteÄndern()
Dim xWerte As Variant, yWerte As Variant
With ActiveChart.SeriesCollection(1)
xWerte = .XValues
yWerte = .Values
xWerte(5) = 23
yWerte(5) = 50
.XValues = xWerte
.Values = yWerte
End With
End Sub
Wenn ich das aber mit der ersten Datenreihe von oben mache, dann sieht die Formel hinterher so aus:
=DATENREIHE(;{1\2\3\4\23\6\7\8\9\10};{1\2\3\4\50\6\7\8\9\10};1)
Also alle Zellbezüge weg. Nicht im Sinne des Erfinders.
Dann habe ich in Excel4 Makrofunktionen gestöbert, ob es dort vielleicht eine Funktion gibt, die zu einem Datenpunkt die dazugehörigen Zellen ausspuckt. Nach einer halben Stunde wühlen in den alten Hilfe-Dateien nix entsprechendes gefunden.
Also, Experten vor: Wie komme ich an die Zellen, in denen die X- und Y-Werte für einen Datenpunkt stehen.
Danke und Gruß, Andreas