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

Graph "von Hand" zeichnen?

Graph "von Hand" zeichnen?
30.09.2003 14:25:28
Tobias
Hallo miteinander

um Funktionsgrafen (Linien) zu glätten und auch sonst zu modifizieren, suche ich eine Möglichkeit, direkt mit mit der Maus einen Grafen in ein Diagramm zu zeichnen.
Ich weiss, da klingt ziemlich haarsträubend, aber es waere in meiner Applikation wirklich die beste Lösung.
Einzelne Punkte eins Grafen lassen sich ja per Maus verschieben, aber hier waere es besser, wenn ich mit gedrückter Maustaste direkt, sagen wir sinusförmig über das Diagramm fahren könnte und dann eine solche Linie grafisch und numerisch erhalte.
Dazu müsste ich also die Position des Mauszeigers in "Diagramm"- Koordinaten auslesen können und beim drücken der Maustaste den entsprechenden Wert in der Tabelle eintragen.

Hat jemand schon mal sowas gemacht oder Ideen zu Teil-Problemen, beispielsweise dem Auslesen der Mausposition im Diagramm oder dem Verändern der Werte bei gedrückter Taste?

Besten Dank für jeden Hinweis!

Gruss, Tobias

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ein Lösungsansatz
01.10.2003 09:19:34
Galenzo
Hallo,
als Ansatz kann ich dir mal die Ergebnisse meiner Experimente posten:
Ich habe in "Tabelle1" in der Spalte A (von Zeile1 bis Zeile800) 800x den
Fehlerwert #NV stehen. Aus dieser Spalte habe ich ein Diagramm erstellt - ein Balkendiagramm auf einer neuen Seite.
Dem Ereignis Chart_MouseMove, das ausgelöst wird, sobald die Maus über das Diagramm bewegt wird habe ich diese Prozedur zugewiesen:



Private Sub Chart_MouseMove(ByVal Button As LongByVal Shift As LongByVal As LongByVal As Long)
    If x > 0 And x < 800 And _
       y > 0 And y < 600 Then
            Sheets("Tabelle1").Cells(x, 1).FormulaR1C1 = CStr(600 - y)
    End If
End Sub


Dem Tabellenwert, der in DER Zeile steht, welcher der X-Position der Maus entspricht, wird der Y-Wert der Mausposition zugewiesen ( eigentlich "Maximalwert minus Y-Pos, da
die Y-Position von oben zählt!) Vorher wird nochmal sicherheitshalber abgefragt
(IF..THEN), ob X zwischen 0 und 800 und Y zwischen 0 und 600 ist.
Das Ergebnis ist natürlich noch wenig brauchbar, da beim Drüberstreichen mit der Maus nicht alle Werte hochgesetzt werden - viele bleiben auf #NV stehen (werden beim Ziehen übersprungen), so daß du an dieser Stelle noch etwas tun mußt.

Ich hoffe, du kannst mit diesem Denkansatz etwas anfangen und findest eine Lösung für dein Problem. Kannst dann ja mal posten, was bei rausgekommen ist...

Dann viel Erfolg!
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige