ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   One macro two versions (https://www.excelbanter.com/excel-programming/407501-one-macro-two-versions.html)

Shatin[_2_]

One macro two versions
 
I have a macro which is normally invoked by a button on a worksheet. Before
the macro is run, there is a MsgBox prompt asking for confirmation.

Now I want to call this macro from another macro. In this case, I want to
skip the MsgBox prompt part and go ahead with the macro right away.

How can I check whether the macro has been called by a button or another
macro? Or is there a better way handling this problem?

TIA


Ron de Bruin

One macro two versions
 
Hi Shatin

Look in the VBA help for application.caller if you use forms buttons


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Shatin" wrote in message ...
I have a macro which is normally invoked by a button on a worksheet. Before
the macro is run, there is a MsgBox prompt asking for confirmation.

Now I want to call this macro from another macro. In this case, I want to
skip the MsgBox prompt part and go ahead with the macro right away.

How can I check whether the macro has been called by a button or another
macro? Or is there a better way handling this problem?

TIA


BigJimmer

One macro two versions
 
I would have the code for the button be something simple such as

response = msgbox("Do you want to run the macro....")
If response = vbYes then
Call MacroName
Endif

The you can still call MacroName from another macro that does not require
the user to respond to the message box prompt.

"Shatin" wrote:

I have a macro which is normally invoked by a button on a worksheet. Before
the macro is run, there is a MsgBox prompt asking for confirmation.

Now I want to call this macro from another macro. In this case, I want to
skip the MsgBox prompt part and go ahead with the macro right away.

How can I check whether the macro has been called by a button or another
macro? Or is there a better way handling this problem?

TIA



Shatin[_2_]

One macro two versions
 
Actually I simplified the situation somewhat when I posed the question. In
fact I have buttons on several worksheets that call the same macro. So
application.caller doesn't always return the same unique button name. I was
hoping that something like this might work

If application.caller.name like "button*"

but apparently not.

"Ron de Bruin" wrote in message
...
Hi Shatin

Look in the VBA help for application.caller if you use forms buttons


--

Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm


"Shatin" wrote in message
...
I have a macro which is normally invoked by a button on a worksheet.
Before the macro is run, there is a MsgBox prompt asking for confirmation.

Now I want to call this macro from another macro. In this case, I want to
skip the MsgBox prompt part and go ahead with the macro right away.

How can I check whether the macro has been called by a button or another
macro? Or is there a better way handling this problem?

TIA



Shatin[_2_]

One macro two versions
 
That is a simple and practical solution and maybe that's what I am actually
going to do. Still, I am curious to know what
the code would be like if I want to have just one macro.

"BigJimmer" wrote in message
...
I would have the code for the button be something simple such as

response = msgbox("Do you want to run the macro....")
If response = vbYes then
Call MacroName
Endif

The you can still call MacroName from another macro that does not require
the user to respond to the message box prompt.

"Shatin" wrote:

I have a macro which is normally invoked by a button on a worksheet.
Before
the macro is run, there is a MsgBox prompt asking for confirmation.

Now I want to call this macro from another macro. In this case, I want to
skip the MsgBox prompt part and go ahead with the macro right away.

How can I check whether the macro has been called by a button or another
macro? Or is there a better way handling this problem?

TIA





All times are GMT +1. The time now is 02:00 AM.

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