View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.misc
Bob Phillips Bob Phillips is offline
external usenet poster
 
Posts: 10,593
Default VB - ignore a msgbox prompt

Instead of a MsgBox, you could use a timed userform,

In the form have a label with the message and Yes and no buttons and this
code

Public Response As VbMsgBoxResult
Public Delay As Double

Private Sub cmdYes_Click()
Response = vbYes
Me.Hide
End Sub

Private Sub cmdNo_Click()
Response = vbNo
Me.Hide
End Sub

Private Sub UserForm_Activate()
nTime = Now + Delay
Application.OnTime nTime, "CloseForm"
End Sub

and then in a standard code module, add this code to launche this message
box

Public nTime As Double
Public frm As frmMessage

Public Sub ShowMessageForm()

Set frm = New frmMessage
frm.Delay = TimeSerial(0, 0, 10) 'adjust to suit
frm.Show
On Error Resume Next
Application.OnTime nTime, "CloseForm", , False
On Error GoTo 0
Unload frm

End Sub

Public Sub CloseForm()
If frm.Response = vbYes Then

ThisWorkbook.Save
ThisWorkbook.Close
Else

'your code to do something in another hour
End If
Unload frm
End Sub


--
---
HTH

Bob


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



"Kevin" wrote in message
...
Hi

I have an excel sheet that is used by many people (share workbook not an
option I want to use).

I have found code that allows me to force close the workbook after a
certain
time. I want after one hour to prompt users (msgbox,vbYesNoCancel) to
close
the workbook. This is fine. However I want after 2 hours to force close
regardless. I am missing one piece which is if a user goes home leaving
the
workbook open the workbook will produce a prompt after one hour. Until an
option is selected the second piece of code (ie the force close after 2
hours) does not execute. What can I enter in code to ignore or cancel the
first prompt (msgbox) if a user doesnt action it?


--
Kev