ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   once only pop up (https://www.excelbanter.com/excel-worksheet-functions/251907-once-only-pop-up.html)

phil

once only pop up
 
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.

Mark

once only pop up
 
On Dec 27, 7:52*pm, Phil wrote:
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.


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...

excelent

once only pop up
 
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:

On Dec 27, 7:52 pm, Phil wrote:
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.


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...
.


Gord Dibben

once only pop up
 
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


On Sun, 27 Dec 2009 17:52:03 -0800, Phil
wrote:

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.




All times are GMT +1. The time now is 06:27 AM.

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