Recent Posts

Pages: [1] 2 3 ... 10
Presumably, the Data Window is protected from external events while the changes caused by the action in this window are taking place. Therefore, the data changes, but the window does not feel it. And then it gets late.
Deferred push is fired. For example, the NOW () function updates the window. But it fires once a minute.

A timer or VisioIsIdle would be very helpful in this case. But they are missing from the ShapeSheet.
Oh, I came up with... It is needed to make a little Add-on that will execute the timer function and return the result to the ShapeSheet.
Very challenging indeed.

I found out that the cells trigger just fine, it's the display which does not refresh.
When you select any shape after having modified the page prop and desellect again, the props display as they should.

A macro could do the selection job, but I guess you want a pure shapesheet solution.
You can try to shake Shape Data Window.
For example, like this:

I liked your challenge :)
ShapeSheet & Smart Shapes / Re: Limit Cell Value to Increments
« Last post by rezingg on July 15, 2020, 07:15:07 PM »
"Height=INT(SETATREFEXPR(0.5 in)*(8 in)+0.5)/(8 in)"
is doing exactly what I needed, snap to 1/8".

Thanks vojo!
I don't want to show/hide all the shapes on the page!

The example file I provided is just to show the difference in behavior after changing a Shape Data value that results in the need to update the Shape Data window -- it works correctly for the shape but it fails for the page.

Sorry if show/hide was misleading. Hiding Shape Data rows was merely an example of something that requires updating the Shape Data window after the user makes a change. If you'd like a different example, just let me know.

As I said in my initial post, I'm sure this is a bug in Visio. I'm hoping for a creative workaround -- perhaps a formula that forces Visio to update the window.

Sorry for the confusion. Does this make it more clear? Or worse? ;-)
so to recap, you want to show/hide ALL shapes on a page or even hide the page.
that is somewhat unusual.

More common is to want to show / hide a group shape or a child shape

for a group
- set the control at group level...maybe actions (note, to get it back, use lasso then right click).
     sheet.1!actions.s_h = setf(getref(actions.s_h.checked),if(actions.s_h.checked,0,1))
- in each geometry at group use the checked cell
     sheet.1!geometry<n>.showhide = if (not(sheet.1!actions.s_h.checked),0,1)
- in child shape geometries
     sheet.99!geometry<n>.showhide = if(not(sheet.1!actions.s_h.checked),0,1)

There are more complicate ways to do this using setatref functions in width and height
if actions checked, then width =0mm height =0mm...if not their values
Setatref will allow you to change width and height ….and store elsewhere to allow you to retried late
complicated and subtle.
ShapeSheet & Smart Shapes / Re: Limit Cell Value to Increments
« Last post by vojo on July 15, 2020, 06:01:17 PM »
I think you will have to use one of the setatref functions for this.  However, these are very complicated and subtle functions
You should play with to understand

a visio guy example of constraining a control point in a circle is an example of how to do this.

ShapeSheet & Smart Shapes / Limit Cell Value to Increments
« Last post by rezingg on July 15, 2020, 04:32:31 PM »
So I can use BOUND() to limit the rotation angle of a cell to some increment, e.g. 90 deg. This works because the angle value is circular (i.e. is wrapping, the same values keep repeating as you go around the circle multiple times).
Is there a way to limit a linear cell value, such as "Width" to an increment?
What I would like to do is to limit the width of a shape to increments of 1/8 in. So when the user drags the handle of the shape to change width, it snaps to 1/8 in steps, similar to what BOUND() can do for the angle.
I tried to use BOUND(), but get a "circular reference" error, as I can't put fixed values as parameters, but need to refer back to the current value of the cell.
I know I can do this with a macro, but I would like to stay within the ShapeSheet, if possible.
I have a challenge for the folks on this forum!

In the attached diagram, the rectangle and the page contain identical User and Prop cells. The goal is to show/hide Prop A, B, and C by using a formula in the Invisible cell for A, B, and C. Toggling the value in “Show/Hide All” should do the trick. (I’m sure many of you have done this!)

It works fine for the shape.

However, when you select the page and attempt to do the same thing, the visibility of the Prop cells in the Shape Data window does not change – despite the fact that the values in the Invisible cells in the page's ShapeSheet do change. To say that another way: The ShapeSheet is correct after the user's change but the Shape Data window does not refresh.

I found one (very clumsy) workaround: After changing "Show/Hide All" for the page, enter and then exit any cell in the ShapeSheet – no need to make any changes, just enter and exit a cell.

Visio Guy found another (less awkward) workaround: Change "Show/Hide All" for the page, click a shape, and then click back to the page.

I've reported this as a bug, but in the meantime, the challenge is this: can anyone find a ShapeSheet formula, or combination of formulae, that forces the Shape Data window to update after the user makes a change? I've tried a couple of SETF and SETATREF combinations but haven't found one that forces the Shape Data window to update.

Programming & Code / Re: Action section "hidden" cells?
« Last post by wapperdude on July 15, 2020, 03:14:58 PM »
Since these are hidden, thus, unknown, the risk of using one seems extremely small.  Except for this thread, I'd say most users are unaware of their existence.  Indeed, it takes code to discover them.  It's probably bad form to keep them.  It may keep old code from crashing, but it does possibly allow for incorrect execution of said code.  I think getting error msg is preferable.
Pages: [1] 2 3 ... 10