Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1792to1796
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

Position einer Linie abfragen

Position einer Linie abfragen
11.11.2020 13:42:28
Daniel
Hallo Excelfreunde,
ich suche nun schon seit länger Zeit eine Möglichkeit die Position eine Linie auszulesen (Anfangspunkt + Endpunkt).
Hintergrund ist folgender: In einem Tabellenblatt wird ein Formular ausgefüllt. Dazu können auch Bilder Hochgeladen werden. Um Auffälligkeiten in den Bildern zu verdeutlichen, kann der User mittels Linie / Kreis / ect. darauf hindeuten. Die Bilder sowie Linien usw. werden dann als Typ und Position ein einen Datenbank übertragen. Später, wenn das Formular wieder aufgerufen wird, werden die Bilder wieder aus einen Ordner geladen und positioniert sowie die Kreise und Linien wieder eingefügt. Die Größe und Positionen von Kreisen und Rechtecken sind soweit kein Problem. Nur bei den Linien (und Pfeilen) kann ich diese nicht verwenden.
Daher die Frage: wie kann ich aus einer bestehenden Linie den Startpunkt und Endpunkt auslesen um diese dann wieder später für das erzeugen wieder zu nutzen?
Besten Dank für die Hinweise.
Beste Grüße - Daniel

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Position einer Linie abfragen
11.11.2020 17:09:21
onur
Überhaupt nicht, denn wie soll der Code denn z.B. bei einer senkrechten Linie wissen, ob
diese von oben nach unten oder von unten nach oben geht ?
AW: Position einer Linie abfragen
11.11.2020 18:15:32
Yal
Hallo Onur,
zum Beispiel so:
Dim S As Shape
Sub Linien_herstellen()
Const X = 400
Const Y = 300
Const R = 150
For Each S In ActiveSheet.Shapes
S.Delete
Next
Set S = ActiveSheet.Shapes.AddLine(X, Y, X + R, Y + R)
ZeigeRichtung "v1"
Set S = ActiveSheet.Shapes.AddLine(X, Y, X - R, Y + R)
ZeigeRichtung "v2"
Set S = ActiveSheet.Shapes.AddLine(X, Y, X - R, Y - R)
ZeigeRichtung "v3"
Set S = ActiveSheet.Shapes.AddLine(X, Y, X + R, Y - R)
ZeigeRichtung "v4"
End Sub
Sub ZeigeRichtung(Optional NeuerName As String)
If NeuerName  "" Then S.Name = NeuerName
S.Line.EndArrowheadStyle = msoArrowheadTriangle
Debug.Print S.Name, S.Left, S.Top, S.Height, S.Width, S.VerticalFlip, S.HorizontalFlip
Select Case CStr(S.HorizontalFlip) & CStr(S.VerticalFlip)
Case "00" 'zwischen 03:00 und 06:00
Debug.Print "Nach rechts und nach unten"
Debug.Print "Erste Punkt:  " & (S.Left) & " | " & (S.Top)
Debug.Print "Zweite Punkt: " & (S.Left + S.Width) & " | " & (S.Top + S.Height)
Case "0-1" 'zwischen 00:00 und 03:00
Debug.Print "Nach rechts und nach oben"
Debug.Print "Erste Punkt:  " & (S.Left) & " | " & (S.Top + S.Height)
Debug.Print "Zweite Punkt: " & (S.Left + S.Width) & " | " & (S.Top)
Case "-10" 'zwischen 06:00 und 09:00
Debug.Print "Nach links und nach unten"
Debug.Print "Erste Punkt:  " & (S.Left + S.Width) & " | " & (S.Top)
Debug.Print "Zweite Punkt: " & (S.Left) & " | " & (S.Top + S.Height)
Case "-1-1" 'zwischen 09:00 und 12:00
Debug.Print "Nach links und nach oben"
Debug.Print "Erste Punkt:  " & (S.Left + S.Width) & " | " & (S.Top + S.Height)
Debug.Print "Zweite Punkt: " & (S.Left) & " | " & (S.Top)
End Select
End Sub
Bei der Aufgabe von Daniel:
Du muss zusätzlich die relative Position und den Ratio speichern.
Keine Einfache Aufgabe.
Viel Erfolg
Yal
Anzeige
AW: Position einer Linie abfragen
11.11.2020 20:38:50
Daniel
Hallo Yal,
Hallo Karl-Heinz,
vielen Dank für eure tollen Hinweise. Wenn man weiß wo man anpacken muss ist, mit VBA sehr viel möglich. Ich probiere beide Vorschläge aus und schau, welchen Code ich am besten bei mir einbauen kann.
Vielen Dank.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige