ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   A) 2 Contiguous Popups B) The 'reverse' of .onaction (https://www.excelbanter.com/excel-programming/392912-2-contiguous-popups-b-reverse-onaction.html)

Neal Zimm

A) 2 Contiguous Popups B) The 'reverse' of .onaction
 
Hi All,
I have Walkenbach's 2002 VBA book and am STARTING to learn about Toolbars
and Menus. I've built a menu using his method of putting the variable data
into a worksheet, ws, with a macro to add the controls reading the ws. What
I don't see; I looked thru all of the standard Excel Menus, is two popups "in
a row". See diagram below for popup 2 and 2.1
A)
Menu
popup 1 a series of "popup 1's" is what the JWalk code does.
sub item a
sub item b
popup 2
popup 2.1
sub item c
sub item d
popup 2.2
sub item e
sub item f

Is the above possible ? (I don't need code now, but without something like
the above; the Menu design for the app I'm building will be more difficult.)

Related to the above is:

B) In my playing around, I've started a macro via the onaction = "macname"
capability, and in a prior posting I've received advice NOT to pass arguments
via
onaction = and I'm gonna follow the advice. I've put some data into the .Tag
property, BUT then I realized:
How does a macro "know" which control button triggered it?
Is there some kind of event that will let you back track to the .Tag
info ?

Is the 'normal' way to do this: to attach a different macro name for
each control button with onaction= ? That would give me what I need, but it
seems cumbersome.

Thanks,
Neal Z.


--
Neal Z

Bob Phillips

A) 2 Contiguous Popups B) The 'reverse' of .onaction
 

"Neal Zimm" wrote in message
...
Hi All,
I have Walkenbach's 2002 VBA book and am STARTING to learn about Toolbars
and Menus. I've built a menu using his method of putting the variable data
into a worksheet, ws, with a macro to add the controls reading the ws.
What
I don't see; I looked thru all of the standard Excel Menus, is two popups
"in
a row". See diagram below for popup 2 and 2.1
A)
Menu
popup 1 a series of "popup 1's" is what the JWalk code does.
sub item a
sub item b
popup 2
popup 2.1
sub item c
sub item d
popup 2.2
sub item e
sub item f

Is the above possible ? (I don't need code now, but without something like
the above; the Menu design for the app I'm building will be more
difficult.)



It certainly is possible. A popup with sub-items is of type msoControlPopup,
whereas the actual foing control is of type msoControlButton.

I don't have John's code in front of me, but as I recall he uses a level
index, so you will need to add new levels and code to accomodate these.


Related to the above is:

B) In my playing around, I've started a macro via the onaction = "macname"
capability, and in a prior posting I've received advice NOT to pass
arguments
via
onaction = and I'm gonna follow the advice. I've put some data into the
.Tag
property, BUT then I realized:
How does a macro "know" which control button triggered it?
Is there some kind of event that will let you back track to the .Tag
info ?

Is the 'normal' way to do this: to attach a different macro name for
each control button with onaction= ? That would give me what I need, but
it
seems cumbersome.



No, as I showed you, you can use a single macro and test the property from
within there. When you click a control, the assigned macro is called. You
test that control's properties using Application.CommandBars.ActionControl,
whereby VBA holds details of the control triggered. for instance

If Application.CommandBars.ActionControl.Tag ="Neal" then
'etc.



Neal Zimm

A) 2 Contiguous Popups B) The 'reverse' of .onaction
 
Hi Again,
I was hoping you'd grab this one.
There's a big email I sent to you the Addin.
I actually grabbed a code sample you posted here a while ago on the
indented popups. I'll be working with it later.

My eyes are failing me, too many hours, it's the .ActionControl that's the
key. I already have the data I need in the .Tag property. NOW the discussion
on NOT
passing params in .onaction makes perfect sense.

Thanks.
--
Neal Z


"Bob Phillips" wrote:


"Neal Zimm" wrote in message
...
Hi All,
I have Walkenbach's 2002 VBA book and am STARTING to learn about Toolbars
and Menus. I've built a menu using his method of putting the variable data
into a worksheet, ws, with a macro to add the controls reading the ws.
What
I don't see; I looked thru all of the standard Excel Menus, is two popups
"in
a row". See diagram below for popup 2 and 2.1
A)
Menu
popup 1 a series of "popup 1's" is what the JWalk code does.
sub item a
sub item b
popup 2
popup 2.1
sub item c
sub item d
popup 2.2
sub item e
sub item f

Is the above possible ? (I don't need code now, but without something like
the above; the Menu design for the app I'm building will be more
difficult.)



It certainly is possible. A popup with sub-items is of type msoControlPopup,
whereas the actual foing control is of type msoControlButton.

I don't have John's code in front of me, but as I recall he uses a level
index, so you will need to add new levels and code to accomodate these.


Related to the above is:

B) In my playing around, I've started a macro via the onaction = "macname"
capability, and in a prior posting I've received advice NOT to pass
arguments
via
onaction = and I'm gonna follow the advice. I've put some data into the
.Tag
property, BUT then I realized:
How does a macro "know" which control button triggered it?
Is there some kind of event that will let you back track to the .Tag
info ?

Is the 'normal' way to do this: to attach a different macro name for
each control button with onaction= ? That would give me what I need, but
it
seems cumbersome.



No, as I showed you, you can use a single macro and test the property from
within there. When you click a control, the assigned macro is called. You
test that control's properties using Application.CommandBars.ActionControl,
whereby VBA holds details of the control triggered. for instance

If Application.CommandBars.ActionControl.Tag ="Neal" then
'etc.




Bob Phillips

A) 2 Contiguous Popups B) The 'reverse' of .onaction
 
Neal,

Saw the email, and have responded.

I've looked at John's code. Do you need an amended version for 4 levels?

--
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)

"Neal Zimm" wrote in message
...
Hi Again,
I was hoping you'd grab this one.
There's a big email I sent to you the Addin.
I actually grabbed a code sample you posted here a while ago on the
indented popups. I'll be working with it later.

My eyes are failing me, too many hours, it's the .ActionControl that's
the
key. I already have the data I need in the .Tag property. NOW the
discussion
on NOT
passing params in .onaction makes perfect sense.

Thanks.
--
Neal Z


"Bob Phillips" wrote:


"Neal Zimm" wrote in message
...
Hi All,
I have Walkenbach's 2002 VBA book and am STARTING to learn about
Toolbars
and Menus. I've built a menu using his method of putting the variable
data
into a worksheet, ws, with a macro to add the controls reading the ws.
What
I don't see; I looked thru all of the standard Excel Menus, is two
popups
"in
a row". See diagram below for popup 2 and 2.1
A)
Menu
popup 1 a series of "popup 1's" is what the JWalk code does.
sub item a
sub item b
popup 2
popup 2.1
sub item c
sub item d
popup 2.2
sub item e
sub item f

Is the above possible ? (I don't need code now, but without something
like
the above; the Menu design for the app I'm building will be more
difficult.)



It certainly is possible. A popup with sub-items is of type
msoControlPopup,
whereas the actual foing control is of type msoControlButton.

I don't have John's code in front of me, but as I recall he uses a level
index, so you will need to add new levels and code to accomodate these.


Related to the above is:

B) In my playing around, I've started a macro via the onaction =
"macname"
capability, and in a prior posting I've received advice NOT to pass
arguments
via
onaction = and I'm gonna follow the advice. I've put some data into the
.Tag
property, BUT then I realized:
How does a macro "know" which control button triggered it?
Is there some kind of event that will let you back track to the .Tag
info ?

Is the 'normal' way to do this: to attach a different macro name for
each control button with onaction= ? That would give me what I need,
but
it
seems cumbersome.



No, as I showed you, you can use a single macro and test the property
from
within there. When you click a control, the assigned macro is called. You
test that control's properties using
Application.CommandBars.ActionControl,
whereby VBA holds details of the control triggered. for instance

If Application.CommandBars.ActionControl.Tag ="Neal" then
'etc.







All times are GMT +1. The time now is 01:45 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com