Microsoft Excel

Herbers Excel/VBA-Archiv

Graph "von Hand" zeichnen?

    Betrifft: Graph "von Hand" zeichnen? von: Tobias
    Geschrieben am: 30.09.2003 14:25:28

    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

      


    Betrifft: AW: ein Lösungsansatz von: Galenzo
    Geschrieben am: 01.10.2003 09:19:34

    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!


     

    Beiträge aus den Excel-Beispielen zum Thema " Graph "von Hand" zeichnen?"