ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Application.onKey non-functioning (https://www.excelbanter.com/excel-programming/379251-application-onkey-non-functioning.html)

Madhan

Application.onKey non-functioning
 
Hi,
I tried adding more than one Application.onKey entries to capture up-arrow,
down-arrow, right-arrow and left-arrow keys, but, none of the procedures
associated with each of the Application.onKey entries are activated.
I tried using breakpoints and msgbox statement.
Is there a restriction on the number of Application.onKey entries ? Or is
there some other issue ?
Help would definitely be appreciated.

Madhan

Application.onKey non-functioning
 
Hi, I have written a Sub that is triggered when I press CTRL+E (this act was
recorded using macro recorder). That sub contains the following statements.
Application.OnKey "{ESC}", "moveNone"
Application.OnKey "{UP}", "moveUp"
Application.OnKey "{DOWN}", "moveDown"
Application.OnKey "{LEFT}", "moveLeft"
Application.OnKey "{RIGHT}", "moveRight"
start

"Martin Fishlock" wrote:

Madhan,

Where are you running the application.onkey code?

Also pls post the code for the onkey entries.

--
Hope this helps
Martin Fishlock
Please do not forget to rate this reply.


"Madhan" wrote:

Hi,
I tried adding more than one Application.onKey entries to capture up-arrow,
down-arrow, right-arrow and left-arrow keys, but, none of the procedures
associated with each of the Application.onKey entries are activated.
I tried using breakpoints and msgbox statement.
Is there a restriction on the number of Application.onKey entries ? Or is
there some other issue ?
Help would definitely be appreciated.


NickHK

Application.onKey non-functioning
 
Sounds like you need to use a timer to move the selection, dependent on the
value set by the arrow keys. Or stop if ESC was pressed.

NickHK

"Madhan" wrote in message
...
Hi, yes it works. Now, the requirement seems to have changed. The
registration of the key event handlers is expected to work in parallel.
In an infinite loop which iterates through various cells of a worksheet,
whenever the appropriate key is pressed, the direction of the cell

navigation
should change. For example, when I press Down-arrow key, the cell

navigation
should change its current direction and should navigate downwards.
This never happens, since the infinite loop is a tight loop and hence the
key events are not recognised, though you may press the key for many

number
of times.

"Martin Fishlock" wrote:

Madhan

I tried the code below and it worked.

You need to call activateonkey and then you can press the keys and the
message boxes appear. After you are finished call deactivateonkey to

cancel
them.



Sub activateonkey()
Application.OnKey "{ESC}", "moveNone"
Application.OnKey "{UP}", "moveUp"
Application.OnKey "{DOWN}", "moveDown"
Application.OnKey "{LEFT}", "moveLeft"
Application.OnKey "{RIGHT}", "moveRight"

End Sub

Sub deactivateonkey()
Application.OnKey "{ESC}"
Application.OnKey "{UP}"
Application.OnKey "{DOWN}"
Application.OnKey "{LEFT}"
Application.OnKey "{RIGHT}"

End Sub
Sub moveUp()
MsgBox "moveup"
End Sub
Sub moveDown()
MsgBox "movedown"
End Sub
Sub moveLeft()
MsgBox "moveleft"
End Sub
Sub moveRight()
MsgBox "moveRight"
End Sub
Sub moveNone()
MsgBox "moveEscNone"
End Sub


--
Hope this helps
Martin Fishlock
Please do not forget to rate this reply.


"Madhan" wrote:

Hi, I have written a Sub that is triggered when I press CTRL+E (this

act was
recorded using macro recorder). That sub contains the following

statements.
Application.OnKey "{ESC}", "moveNone"
Application.OnKey "{UP}", "moveUp"
Application.OnKey "{DOWN}", "moveDown"
Application.OnKey "{LEFT}", "moveLeft"
Application.OnKey "{RIGHT}", "moveRight"
start

"Martin Fishlock" wrote:

Madhan,

Where are you running the application.onkey code?

Also pls post the code for the onkey entries.

--
Hope this helps
Martin Fishlock
Please do not forget to rate this reply.


"Madhan" wrote:

Hi,
I tried adding more than one Application.onKey entries to capture

up-arrow,
down-arrow, right-arrow and left-arrow keys, but, none of the

procedures
associated with each of the Application.onKey entries are

activated.
I tried using breakpoints and msgbox statement.
Is there a restriction on the number of Application.onKey entries

? Or is
there some other issue ?
Help would definitely be appreciated.




tom lorenz

interupting excel infintie loops to detect shortcut keypresses
 
hi
same issue
i got round it very inelegantly with:
setting up a command button
setting the accelerator to the key i wanted to use

the computer can still pick up these keypresses ie alt+k, when it seems to be blind to application.onkey "k","proc"

very irritating. i then set sticky keys on and pressed alt x2, to remove the need to keep pressing alt key with my short cut keys.

i tried putting :Application.SendKeys ("^{break}")
within the infinite loop, but this didnt work for me

any thoughts?
tom

EggHeadCafe.com - .NET Developer Portal of Choice
http://www.eggheadcafe.com

tom lorenz

interupting excel infintie loops to detect shortcut keypresses
 
hi
same issue
i got round it very inelegantly with:
setting up a command button
setting the accelerator to the key i wanted to use

the computer can still pick up these keypresses ie alt+k, when it seems to be blind to application.onkey "k","proc"

very irritating. i then set sticky keys on and pressed alt x2, to remove the need to keep pressing alt key with my short cut keys.

i tried putting :Application.SendKeys ("^{break}")
within the infinite loop, but this didnt work for me

any thoughts?
tom

EggHeadCafe.com - .NET Developer Portal of Choice
http://www.eggheadcafe.com


All times are GMT +1. The time now is 12:35 PM.

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