ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Disable close unless key held (https://www.excelbanter.com/excel-programming/439153-disable-close-unless-key-held.html)

Chad Cameron[_2_]

Disable close unless key held
 
Hi All,

Is there a way to only enable the close command in excel if the "Shift" key
is held (or any key for that matter) I have a little program that monitors
a computer, but I don't want anyone to close it. (At this time I am not
worried if they kill the process).

Thanks
Chad



Peter T

Disable close unless key held
 
There are several ways to close Excel, 2 ways with the main Excel icon, the
little-x on the main window, Alt-F4, and File/Exit. Only the latter in
2000-2003 can easily be intercepted. To trap the others would require doing
a lot of stuff that's not practical.

A different approach would be to set the Cancel flag in a workbook-close
event if/as required, post back if that might work for your needs.

Regards,
Peter T

"Chad Cameron" remove NOT wrote in message
...
Hi All,

Is there a way to only enable the close command in excel if the "Shift"
key is held (or any key for that matter) I have a little program that
monitors a computer, but I don't want anyone to close it. (At this time I
am not worried if they kill the process).

Thanks
Chad




Chad Cameron[_2_]

Disable close unless key held
 
I am guessing you mean something like check if ZZ1 = [something] then close.
and then I enter something in that cell when I want to close it.

That will work, its just an extra step.

"Peter T" <peter_t@discussions wrote in message
...
There are several ways to close Excel, 2 ways with the main Excel icon,
the little-x on the main window, Alt-F4, and File/Exit. Only the latter in
2000-2003 can easily be intercepted. To trap the others would require
doing a lot of stuff that's not practical.

A different approach would be to set the Cancel flag in a workbook-close
event if/as required, post back if that might work for your needs.

Regards,
Peter T

"Chad Cameron" remove NOT wrote in message
...
Hi All,

Is there a way to only enable the close command in excel if the "Shift"
key is held (or any key for that matter) I have a little program that
monitors a computer, but I don't want anyone to close it. (At this time
I am not worried if they kill the process).

Thanks
Chad






Peter T

Disable close unless key held
 
No that's not what I meant and not sure how that'd work. Try this in a
ThisWorkbook module and try and close Excel -

Private Declare Function GetKeyState32 Lib "user32" _
Alias "GetKeyState" (ByVal vKey As Integer) As Integer

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim res As Long

res = GetKeyState32(vbKeyControl)

If ThisWorkbook.Saved = False Then
Cancel = (res = 0)
End If

If Cancel Then
MsgBox "hold Ctrl if you want to close Excel"
End If

End Sub

Regards,
Peter T

"Chad Cameron" remove NOT wrote in message
...
I am guessing you mean something like check if ZZ1 = [something] then
close. and then I enter something in that cell when I want to close it.

That will work, its just an extra step.

"Peter T" <peter_t@discussions wrote in message
...
There are several ways to close Excel, 2 ways with the main Excel icon,
the little-x on the main window, Alt-F4, and File/Exit. Only the latter
in 2000-2003 can easily be intercepted. To trap the others would require
doing a lot of stuff that's not practical.

A different approach would be to set the Cancel flag in a workbook-close
event if/as required, post back if that might work for your needs.

Regards,
Peter T

"Chad Cameron" remove NOT wrote in message
...
Hi All,

Is there a way to only enable the close command in excel if the "Shift"
key is held (or any key for that matter) I have a little program that
monitors a computer, but I don't want anyone to close it. (At this time
I am not worried if they kill the process).

Thanks
Chad








Chad Cameron[_2_]

Disable close unless key held
 
Ok, yes that is what I wanted. I knew I had to use the Cancel Flag, just
wasn't sure how to capture the key
Thanks
Chad

"Peter T" <peter_t@discussions wrote in message
...
No that's not what I meant and not sure how that'd work. Try this in a
ThisWorkbook module and try and close Excel -

Private Declare Function GetKeyState32 Lib "user32" _
Alias "GetKeyState" (ByVal vKey As Integer) As Integer

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim res As Long

res = GetKeyState32(vbKeyControl)

If ThisWorkbook.Saved = False Then
Cancel = (res = 0)
End If

If Cancel Then
MsgBox "hold Ctrl if you want to close Excel"
End If

End Sub

Regards,
Peter T

"Chad Cameron" remove NOT wrote in message
...
I am guessing you mean something like check if ZZ1 = [something] then
close. and then I enter something in that cell when I want to close it.

That will work, its just an extra step.

"Peter T" <peter_t@discussions wrote in message
...
There are several ways to close Excel, 2 ways with the main Excel icon,
the little-x on the main window, Alt-F4, and File/Exit. Only the latter
in 2000-2003 can easily be intercepted. To trap the others would require
doing a lot of stuff that's not practical.

A different approach would be to set the Cancel flag in a workbook-close
event if/as required, post back if that might work for your needs.

Regards,
Peter T

"Chad Cameron" remove NOT wrote in message
...
Hi All,

Is there a way to only enable the close command in excel if the "Shift"
key is held (or any key for that matter) I have a little program that
monitors a computer, but I don't want anyone to close it. (At this
time I am not worried if they kill the process).

Thanks
Chad










Peter T

Disable close unless key held
 
Actually better to remove the If test altogether

If ThisWorkbook.Saved = False Then

That got left in having tested a slightly different approach

Peter T


"Chad Cameron" remove NOT wrote in message
...
Ok, yes that is what I wanted. I knew I had to use the Cancel Flag, just
wasn't sure how to capture the key
Thanks
Chad

"Peter T" <peter_t@discussions wrote in message
...
No that's not what I meant and not sure how that'd work. Try this in a
ThisWorkbook module and try and close Excel -

Private Declare Function GetKeyState32 Lib "user32" _
Alias "GetKeyState" (ByVal vKey As Integer) As Integer

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim res As Long

res = GetKeyState32(vbKeyControl)

If ThisWorkbook.Saved = False Then
Cancel = (res = 0)
End If

If Cancel Then
MsgBox "hold Ctrl if you want to close Excel"
End If

End Sub

Regards,
Peter T

"Chad Cameron" remove NOT wrote in message
...
I am guessing you mean something like check if ZZ1 = [something] then
close. and then I enter something in that cell when I want to close it.

That will work, its just an extra step.

"Peter T" <peter_t@discussions wrote in message
...
There are several ways to close Excel, 2 ways with the main Excel icon,
the little-x on the main window, Alt-F4, and File/Exit. Only the latter
in 2000-2003 can easily be intercepted. To trap the others would
require doing a lot of stuff that's not practical.

A different approach would be to set the Cancel flag in a
workbook-close event if/as required, post back if that might work for
your needs.

Regards,
Peter T

"Chad Cameron" remove NOT wrote in message
...
Hi All,

Is there a way to only enable the close command in excel if the
"Shift" key is held (or any key for that matter) I have a little
program that monitors a computer, but I don't want anyone to close it.
(At this time I am not worried if they kill the process).

Thanks
Chad













All times are GMT +1. The time now is 08:52 PM.

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