Omitting displayalerts set to true Vs. Automatic reset

H

Hari

Hi,

Yesterday I had posed a query on "Displayalerts and screenupdating" for
which I got very useful post backs.

In one of those Bob Phillips mentioned that if we set displayalerts to
"false" and before closing the program we dont change it to "true" then Hh
found excel to automatically reset the displayalert to true.

Today I wrote a macro in my personal folder and I set the displayalerts to
false but omitted the displayalerts to true statement.

After execution of this macro I opened a blank workbook and wrote giberrish
data and pressed the close button on the right hand corner. Strangely ( or
to my horror ) excel didnt prompt me for changes the way it used to do
always. Presently I have run the same macro with displayalerts set to true
statement included and
now when I close a unsaved workbook Im getting prompts for saving it.

My query is how is it that Bob's experience is different to mine. Does the
way displayalerts work depends on Excel version ( I have 2002 and Win2K ).
Or does the same depend on which type of workbook one used the displayalert
statement. In my case was the fact that I tied it on Personal macro folder
make it sort of permenant?

Regards,
Hari
India
 
B

Bob Phillips

Hari,

What I said was

VBA Help says that it is not automatically reset at the end, but I am sure
that I found that it is. Either way, it isn't much to do it yourself.

Not quite the way that you have worded it. I was stating my recollection,
but advising that you do it anyway. I always do. Even if it worked today,
there is no guarantee it will in the next release.

--

HTH

Bob Phillips
... looking out across Poole Harbour to the Purbecks
(remove nothere from the email address if mailing direct)
 
D

Doug Glancy

Hari,

I don't know what the difference is, but the easy answer, which Bob
suggested yesterday, is to always set it back to true at the end of the
macro.

To take it one step further it's a good idea to have an error handler that
resets setttings in each macro, e.g.:

Sub Test

on error goto err_handler
Application.EnableAlerts = False

' your code here

err_handler:
Application.EnableAlerts = True
End Sub

That way, if your code bombs while EnableAlerts (or other settings) are
turned off, execution of your code will branch to the error handler, which
will turn them back on. Without an error handler, the user will just get
the regular VBA "error - debug or end?" message. Note that in the example
above, the err_handler code will always execute even if there is no error,
which is fine in this case because you want the code in the handler to be
executed in either case. However, if you want the error handler to only
execute when there's an error, you'd put an Exit Sub statement before it:

Sub Test
on error goto err_handler
Application.EnableAlerts = False
' your code here
Application.EnableAlerts = True

Exit Sub
err_handler:
msgbox "There has been an error. Please contact Hari."
Application.EnableAlerts = True
End Sub

hth,

Doug
 
H

Hari

Hi Bob,

Thanx a lot. Got ur point.Will take care to include it always.

Regards,
Hari
India
 
H

Hari

Hi Doug,

Thanx a lot.

This way I got to learn about what error handlers are. I will learn to
incorporate them in my code.Thanx again.

Regards,
Hari
India
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top