once only pop up

P

Phil

Hi there,

I've created a message that comes up upon opening a worksheet template i've
created that reminds the user to resave this workbook first before using it
so as not to loose the template.

i've done this using the following code:

Private Sub Workbook_Open()
Dim MyBox As Object
Dim Duration As Long
Duration = 4 'Seconds
Msg = "Resave this workbook first"
Ttl = " Resave"
Set MyBox = CreateObject("WScript.Shell")
response = MyBox.PoPup(Msg, Duration, Ttl, vbOKCancel)
End Sub


The only problem is when i then open the resaved document. the message comes
up everytime (obviously). What can i add to my code so that it only comes up
the one time for that workbook but without loosing it so that it doesn't pop
up in the future when i open the workbook for a new weekending.
 
M

Mark

Hi there,

I've created a message that comes up upon opening a worksheet template i've
created that reminds the user to resave this workbook first before using it
so as not to loose the template.

i've done this using the following code:

Private Sub Workbook_Open()
Dim MyBox As Object
Dim Duration As Long
Duration = 4 'Seconds
Msg = "Resave this workbook first"
Ttl = " Resave"
    Set MyBox = CreateObject("WScript.Shell")
    response = MyBox.PoPup(Msg, Duration, Ttl, vbOKCancel)
End Sub

The only problem is when i then open the resaved document. the message comes
up everytime (obviously). What can i add to my code so that it only comesup
the one time for that workbook but without loosing it so that it doesn't pop
up in the future when i open the workbook for a new weekending.

You might consider using a cell somewhere in the workbook, that you
know will never be used, as a container to store some sort of boolean/
flag type value. then you could just insert a simple if statement
into your code to check for a positive value. If the flag is set,
then skip out of the routine, if it isn't set yet, run the routine and
set the flag. Hope that helps...
 
E

excelent

or define a name "Test" in refers to put this =0

then put this in ur code

If ActiveWorkbook.Names("Test") = "=0" Then
ActiveWorkbook.Names.Add "Test", 1
'ur msg
End If


"Mark" skrev:
 
G

Gord Dibben

A saved workbook will have a path.

An unsaved workbook will not.

Check for the path and Exit Sub if path is found.

If not, carry on with message.

Private Sub Workbook_Open()
Dim MyBox As Object
Dim Duration As Long

If ActiveWorkbook.Path <> "" Then Exit Sub

Ttl = " Resave"
Set MyBox = CreateObject("WScript.Shell")
response = MyBox.PoPup(Msg, Duration, Ttl, vbOKCancel)
End Sub
 

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

Similar Threads


Top