Visio Discussions > ShapeSheet & Smart Shapes
Visio List Shape - how to guard PinX and PinY formulas when item added to list?
Visisthebest:
I have become quite fond of the Visio List Shape functionality, as described here:
https://bvisual.net/2022/07/06/a-visio-list-shape-is-also-a-container/
(rarely I use a Container/List combo, mostly just a List)
The problem I encounter is that for a solution I need formulas in the List shape for PinX and PinY. However, when a list item (shape) is added to the List shape, PinX and PinY are overwritten with a value and the formula is lost. GUARD()-ing the PinX and PinY formulas doesn't help, the formulas still get erased.
Is there another way to protect the PinX and PinY formulas from this behavior of the list shape when an item is added? Thank you for sharing your ideas for a solution!
Yacine:
Yes, the setatref group of functions should help.
Wapperdude has written a nice post about them.
Visisthebest:
Thank you Yacine checked out the MS info on SETATREF():
https://learn.microsoft.com/en-us/office/client-developer/visio/setatref-function
That should work will read up on it from Wapperdude's article as well thank you!
Visisthebest:
By the way, is there also a DEPENDSON() that fires when a formula changes (not just the resulting value)? That would be pretty useful in some cases.
wapperdude:
My guess is maybe. Dependson() is based upon a change in the reference cell. Presumably, that means the cells value. But what if setf() or vba places a new formula? I'm not sure. Try a simple test case. Say set a shape"s width to some value only when color changes. This allows you to enter a color from GUI, or edit shape sheet to use setf() to enter an RGB value, or use code to place a formula.
Navigation
[0] Message Index
[#] Next page
Go to full version