Office Forum
www.Office-Loesung.de
Access :: Excel :: Outlook :: PowerPoint :: Word :: Office :: Wieder Online ---> provisorisches Office Forum <-
Koordinate in Shape-Sheet dynmisch identifizieren
zurück: MS Visio Einklappen Ausklappen weiter: Userform - soll sich Eingaben merken Unbeantwortete Beiträge anzeigen
Neues Thema eröffnen   Neue Antwort erstellen     Status: Feedback Facebook-Likes Diese Seite Freunden empfehlen
Zu Browser-Favoriten hinzufügen
Autor Nachricht
felsioufy
Im Profil kannst Du frei den Rang ändern


Verfasst am:
09. Feb 2014, 16:11
Rufname: Fouad

Koordinate in Shape-Sheet dynmisch identifizieren - Koordinate in Shape-Sheet dynmisch identifizieren

Nach oben
       

Hallo zusammen,

ich stehe vor folgender Herausforderung:
1) im Abschnitt User-defined Cells im Shape-Sheet eines Verbinders habe ich zwei Benutzer-definierte Variable angelegt.
2) Die Variablen soll die Orientierung des ersten und des letzten Segmentes des Verbinders berechnen (1: linie geht nach rechts weg, 2 Linie geht nach oben Weg, usw.)
3) für das erste Segment habe ich das schon hingekriegt. Hier die Formel:
"=IF(Geometry1.X1=Geometry1.X2,IF(Geometry1.Y1<Geometry1.Y2,2,4),IF(Geometry1.X1<Geometry1.X2=1,1,3))"
4) Bei einem Vebinder variiert die Anzahl der Segmente natürlich, und in der Formel für den Endpunkt muss ich das letzte Segment variabel adressieren.
5) Ich habe herausgefunden, dass es eine Funktion gibt, die die Anzahl der Segmente in einem "Geometry-Abschnitt" berechnet: Segmentcount (Pfad)

Mir fehlt jetzt noch die Idee, wie ich das letzte Segment aus Geometry1 adressieren kann. Wenn ich in die Formel das zum Zeitpunkt der Erstellung letzte Segment eintrage, verschwindet das natürlich sobald man den Verbinder verändert.

Was mir vorschwebt ist iene Adressierung ungefähr so, wie man die Zellen in VBA adressiert. Nur ohne VBA (manche Nutzer wollen oder dürfen keine files mit Makros einbinden). Also eine Möglichkeit der indirekten Adressierung einer Zelle in der einem Abschnitt.

Vielen Dank im Voraus für alle Ideen, die ihr schickt.

felsioufy
Jumpy
z.Zt. täglich besser in Visio (+VBA)


Verfasst am:
10. Feb 2014, 09:58
Rufname: Ralph


AW: Koordinate in Shape-Sheet dynmisch identifizieren - AW: Koordinate in Shape-Sheet dynmisch identifizieren

Nach oben
       

Hallo,

jede statische Formel würde, wie du ja bemerkt hast, immer wieder kaputt gehen, wenn sich die Anzahl der Segmente ändert. Das einzige was vllt. ohne VBA funktioniert wäre eine weitere dritte benutzerdefinierte Zelle, die in die zweite Zelle die passende Formel einträgt, wann immer sich der Verbinder geändert hat. Letzeres würde man vll. mittels Dependson ermitteln:

Also ungefähr so:
Code:
=Dependson(EndX)+SETF(GetRef(User.Feld2),"=IF(Geometry1.X1=Geometry1.X2,IF(Geometry1.Y1<Geometry1.Y2,2,4),IF(Geometry1.X1<Geometry1.X2=1,1,3))")
Jetzt muss darin nur noch die 1 und 2 durch Segmentcount ersetzt werden:
Code:
=Dependson(EndX)+SETF(GetRef(User.Feld2),
"=IF(Geometry1.X"&Segmentcount(Geometry1.Path)-1&"=Geometry1.X"&Segmentcount(Geometry1.Path)&",IF(Geometry1.Y"&Segmentcount(Geometry1.Path)-1&"<Geometry1.Y"&Segmentcount(Geometry1.Path)&",2,4),IF(Geometry1.X"&Segmentcount(Geometry1.Path)-1&"<Geometry1.X"&Segmentcount(Geometry1.Path)&"=1,1,3))")
Die Formel ist wahrscheinlich so nicht richtig. Musst selber mal überlegen, wo Segmentcount und wo Segmentcount-1 benutzt werden muss.

Und zuletzt bitte bedenken, dass das ggf. nur in neuen Visio Versionen funktioniert, die Segmentcount unterstützen.

---------------

In alten Versionen würde man einen ganz anderen Ansatz fahren. Man würde kurz (vllt. 0.01mm) vor dem jeweiligen Ende des Verbinders einen Connection Point machen. Egal wie sich der Verbinder verändert, die CP's werden immer am kurz vor dem Ende auf dem letzten Segment liegen.
Dann kann man aus dem Verhältnis der Position des Connection Points und dem jeweiligen BeginX/Y bzw. EndX/Y die Lage des letzen Segments berechnen.
felsioufy
Im Profil kannst Du frei den Rang ändern


Verfasst am:
11. Feb 2014, 11:41
Rufname: Fouad

AW: Koordinate in Shape-Sheet dynmisch identifizieren - AW: Koordinate in Shape-Sheet dynmisch identifizieren

Nach oben
       

Hallo Jumpy,

DeinTipp war wieder einmal Gold-richtig. Vielen Dank dafür.

Meine Lösung: Depends-On mit dem Erstellen der Formel in den Scratch Bereich legen (jeweils für X- und Y- Ausrichtung)
Die Formel für die Ausrichtung des letzten Segments wird dadurch dynamisch jeweils neu generiert wenn sich die Zahl der Segmente ändert.

Anwendungsbeispiel:
Wenndie Orientierung bekannt ist, können sowohl Anfangs- als auch End-Punkte beschriftet werden.

Grüße, Felsioufy
(j)umpy
Gast


Verfasst am:
11. Feb 2014, 12:28
Rufname:


AW: Koordinate in Shape-Sheet dynmisch identifizieren - AW: Koordinate in Shape-Sheet dynmisch identifizieren

Nach oben
       

Cool. Freut mich, dass das klappt.

Ich weiß noch, dass ich mir bei einer ähnlichen Geschichte mal einen abgebrochen habe und das dann mit der oben erwähnten Variante über Connection Points gelöst habe.

Deine Version scheint mir eleganter, da dadurch keine Connection Points auf dem Shape rumfliegen, die man sonst ja gar nicht braucht und da ja immer maximal ein Shape gerade bewegt wird und sich ändert, hält sich die Anzahl der Neu-Kalkulationen auch in Grenzen.
Neues Thema eröffnen   Neue Antwort erstellen Alle Zeiten sind
GMT + 1 Stunde

Diese Seite Freunden empfehlen

Seite 1 von 1
Gehe zu:  
Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen

Verwandte Themen
Forum / Themen   Antworten   Autor   Aufrufe   Letzter Beitrag 
Keine neuen Beiträge MS Visio Forum: Zellen aus Shapesheet auslesen mit VBA unter Visio 2010 0 honestay 227 27. Feb 2013, 10:34
honestay Zellen aus Shapesheet auslesen mit VBA unter Visio 2010
Keine neuen Beiträge MS Visio Forum: formula in shapesheet mit vba 4 cocilight 388 26. Feb 2013, 12:59
Cocilight formula in shapesheet mit vba
Keine neuen Beiträge MS Visio Forum: Zellen aus Shapesheet auslesen per VBA unter Visio 2010 0 Gast 227 26. Feb 2013, 11:01
Gast Zellen aus Shapesheet auslesen per VBA unter Visio 2010
Keine neuen Beiträge MS Visio Forum: Shapesheet Textausgabe Problem 4 asun 231 22. Dez 2012, 11:37
Gast Shapesheet Textausgabe Problem
Keine neuen Beiträge MS Visio Forum: Zelle im ShapeSheet überprüfen 3 FIippy 528 22. Dez 2011, 15:10
Gast Zelle im ShapeSheet überprüfen
Keine neuen Beiträge MS Project Forum: VBA Sammelvorgang / Vorgang identifizieren 2 Wuesten 1221 05. Dez 2011, 10:34
cra58 VBA Sammelvorgang / Vorgang identifizieren
Keine neuen Beiträge MS Visio Forum: Ausgabe eines Wertes über shapesheet in einem besti. Bereich 2 Bleistift142 472 30. Nov 2011, 08:22
Bleistift142 Ausgabe eines Wertes über shapesheet in einem besti. Bereich
Keine neuen Beiträge MS Visio Forum: VISIO 2010 Connectivity API, VDX<->ShapeSheet, XML usw 6 Boyan 1618 20. Okt 2011, 14:49
Gast VISIO 2010 Connectivity API, VDX<->ShapeSheet, XML usw
Keine neuen Beiträge MS Visio Forum: Probleme mit dem Shapesheet 1 Gast 791 06. Mai 2011, 14:23
Gast Probleme mit dem Shapesheet
Keine neuen Beiträge MS Visio Forum: Formel übers Ankleben aus Shapesheet 1-D Endpoints löschen 6 Gast 1097 04. Nov 2010, 11:51
LordFlo79 Formel übers Ankleben aus Shapesheet 1-D Endpoints löschen
Keine neuen Beiträge MS Visio Forum: Shapesheet & sam = hassliebe ;) 2 sam92 571 02. Jul 2010, 08:47
sam92_loginfaul Shapesheet & sam = hassliebe ;)
Keine neuen Beiträge MS Visio Forum: ShapeSheet: Gruppe von einem Element der Gruppe ansprechen 10 Gast 1261 07. Mai 2010, 09:09
Gast ShapeSheet: Gruppe von einem Element der Gruppe ansprechen
 

----> Diese Seite Freunden empfehlen <------ Impressum - Besuchen Sie auch: MS Frontpage