Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1620to1624
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
Inhaltsverzeichnis

Graficprogrammierung

Graficprogrammierung
25.04.2018 18:36:05
Rothe
Ich habe ein Progamm zur Lösung und grafischen Darstellung von Differentialgleichungen geschrieben. Der Funktionsgraf wird programmintern
auf einen festen Bereich im Tabellenblatt kalibriert. Dazu wird ein Koordinaten-
ursprungspunkt in durch ein Klssenmodul bestimmt. Wenn ich nun einen 2.Grafen auf
dem gleichen Tabellenblatt für Vergleiche erzeugen will, ist es sinnvoll, die Ordinate zur besseren Lesbarkeit etwas nach links zu verschieben. Es gilt also
festzustellen, ob bereits ein Funktionsgraf existiert; ist also z.B. ein Pfeil der
Ordinate im Punkt 240, 10 vorhanden?
Dim Pfeil As Object
.........
Set Pfeil = Worksheets(1)
With Pfeil.Shapes.AddLine(930, Orgio.Y0, 940, Orgio.Y0).Line
.DashStyle = msoLineSingle 'Pfeil der Abszisse
.EndArrowheadStyle = msoArrowheadTriangle
End With
With Pfeil.Shapes.AddLine(240, 10, 240, 1).Line
.DashStyle = msoLineSingle 'Pfeil der Ordinate
.EndArrowheadStyle = msoArrowheadTriangle
End With
Hierzu diese Befehlssequenz zur Erzeugung des Pfeils.
Ich könnte natürlich eine Zelle als Anzeiger benutzen, das gefällt mir aber vom Stil
her nicht. Matthias

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Graficprogrammierung
26.04.2018 13:46:42
mmat
Hallo,
du möchtest also prüfen ob ein bestimmtes grafisches Element bereits vorhanden ist?
Man könnte bei der Erzeugung den grafisches Elementen einfach einen Namen geben, der sich später durch eine einfache Schleife wieder finden läßt, z.b. so:
Sub Erzeuge(x As Long, y As Long)
Set Pfeil = Worksheets(1)
Set o = Pfeil.Shapes.AddLine(x, y, x + 100, y + 200)
o.Line.DashStyle = msoLineSingle
o.Line.EndArrowheadStyle = msoArrowheadTriangle
o.Name = "Strich" & Format(x, "0000") & Format(y, "0000")
End Sub

AW: Graficprogrammierung
27.04.2018 19:12:13
Rothe
Hallo mmat, danke für den entscheidenden Hinweis. Die Lösung:
On Error Resume Next
Worksheets(1).Shapes("Ypfeil").Select
If Err.Number 0 Then
With Pfeil.Shapes.AddLine(Orgio.X0, 10, Orgio.X0, 1)
.Name = "Ypfeil" 'Worksheets(1) noch leer
.Line.DashStyle = msoLineSingle
.Line.EndArrowheadStyle = msoArrowheadTriangle
End With
Else
With Pfeil.Shapes.AddLine(Orgio.X0 - 60, 10, Orgio.X0 - 60, 1)
.Line.DashStyle = msoLineSingle 'Pfeil der Ordinate
.Line.EndArrowheadStyle = msoArrowheadTriangle
End With 'Err.Number = 0, Worksheets(1) nicht leer
End If
.....2.Ordinate un 60 nach links.
Man kann auch den von VBA vergebenen Standardnamen verwenden. Den erhält man durch testweise Modulauf-
zeichnung. Bei Quelltexterweiterung kann der sich allerdings ändern.
Ma.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige