Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

bitte bitte bitte VB hilfe

Forumthread: bitte bitte bitte VB hilfe

bitte bitte bitte VB hilfe
17.07.2003 13:04:09
Stefan A
ich würde gerne abhängigkeiten zwischen feldern mit pfeilen dynamisch verbinden lassen.
ausgehend von einer zeitleisten wo ich verschiedene arbeitsschritte einer maschine eintrage, diese einträge stehen in verbindung zu einander, zur besseren veranschaulichung will ich diese grafisch mit pfeilen verbinden. da aber die pfeile nur mit Koordinaten arbeiten, wird dies schwierig
ActiveSheet.Shapes.AddLine(BeginnX, BeginnY, EndeX, EndeY).Select
so in etwa, kann man die Pfeile nicht auf Zellen fixieren oder muss man das so blöd umständlich mit koordinaten machen?
mit den koordinaten komme ich nie so richtig hin bzw es wird einfach total viel programmieraufwand
warum kann ich im mainthread kein bild anhängen?
mfg stefan
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Betreff
17.07.2003 13:25:17
Stephan
Bitte in Zukunft einen aussagekräftigen Betreff wählen. Hilfe brauchen hier alle :-)
z.b. Linien ziehen

mit Bild
17.07.2003 13:06:05
Stefan A
https://www.herber.de/bbs/user/273.jpg
Hier ist nun das Bild, die Pfeile sind nur zur Veranschaulichung händisch eingezeichnet, genau das soll später dynamisch geschehen.
danke für die Hilfe 8]

Anzeige
AW: mit Bild
17.07.2003 13:15:10
Steffan
Hallo Stefan,
vielleicht hilft Dir folgendes Makro:

Private Sub lineDraw(zelle1 As Range, pos1 As Integer, zelle2 As Range, pos2 As Integer)
'zieht eine Linie zwischen zwei Zellen
'pos1 und pos2 sind Positionen, relativ zur Zelle
'1...oben links         2...oben mitte          3...oben rechts
'4...mitte links        5...zentrum             6...mitte rechts
'7...unten links        8...unten mitte         9...unten rechts
Dim zX1 As Single, zY1 As Single
Dim zX2 As Single, zY2 As Single
Select Case pos1
Case 1
zX1 = 0: zY1 = 0
Case 2
zX1 = zelle1.Width / 2: zY1 = 0
Case 3
zX1 = zelle1.Width: zY1 = 0
Case 4
zX1 = 0: zY1 = zelle1.Height / 2
Case 5
zX1 = zelle1.Width / 2: zY1 = zelle1.Height / 2
Case 6
zX1 = zelle1.Width: zY1 = zelle1.Height / 2
Case 7
zX1 = 0: zY1 = zelle1.Height
Case 8
zX1 = zelle1.Width / 2: zY1 = zelle1.Height
Case 9
zX1 = zelle1.Width: zY1 = zelle1.Height
Case Else
Exit Sub    'falscher Wert für Posistion
End Select
Select Case pos2
Case 1
zX2 = 0: zY2 = 0
Case 2
zX2 = zelle2.Width / 2: zY2 = 0
Case 3
zX2 = zelle2.Width: zY2 = 0
Case 4
zX2 = 0: zY2 = zelle2.Height / 2
Case 5
zX2 = zelle2.Width / 2: zY2 = zelle2.Height / 2
Case 6
zX2 = zelle2.Width: zY2 = zelle2.Height / 2
Case 7
zX2 = 0: zY2 = zelle2.Height
Case 8
zX2 = zelle2.Width / 2: zY2 = zelle2.Height
Case 9
zX2 = zelle2.Width: zY2 = zelle2.Height
Case Else
Exit Sub    'falscher Wert für Posistion
End Select
ActiveSheet.Shapes.AddLine( _
zelle1.Left + zX1, zelle1.Top + zY1, _
zelle2.Left + zX2, zelle2.Top + zY2).Select
End Sub

Steffan.

Anzeige
danke für die fixe antwort aber...
17.07.2003 13:26:33
Stefan A
aber wie ruf ich das ding auf? :/
mfg Stefan

AW: danke für die fixe antwort aber...
17.07.2003 13:51:07
Steffan
...z.B. so:

Sub testline()
'Linie von A1 oben links nach A30 unten rechts:
Call lineDraw(Cells(1, 1), 1, Cells(30, 1), 9)
'Linie von  A30 zentrum nach J30 unten links:
Call lineDraw(Cells(30, 1), 4, Cells(30, 10), 7)
End Sub

Steffan.

Anzeige
Danke für die Hilfe
18.07.2003 07:37:06
Stefan A
thx4help

;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige