View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Bill Case Bill Case is offline
external usenet poster
 
Posts: 47
Default KeyAscii won't capture the <Tab key

Hi Peter;

Your right, that was obvious. I was trying to avoid that answer when I
wrote "but
programmaticlly why might I choose KeyDown over KeyUp or viceversa in VBA? ".

What I meant was: when I come to write code for a key action the VBE gives
me a choice of "Private Sub ButOrWhatever_KeyDown(ByVal KeyCode As
MSForms.ReturnInteger, ByVal Shift As Integer)" and "Private Sub
ButOrWhatever_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As
Integer)". For most uses it seems that it will do the same thing as far as a
User is concerned. When I am writing the code to be executed for a key
action, is there any inherent advantage of choosing keydown over keyup.

Nothing I have read indicates any programming advantage of 'up' over 'down'.
But then, nothing I read or googled for told me that 'KeyPress' couldn't
trap <Tab.

So I guess I was asking if there was some poorly docummented programming
difference other than the obvious Keyboard scanning or looping or mechanical
difference.?

Regards Bill


"Peter T" wrote:

What is the difference between KeyDown and Keyup


The KeyDown occurs when you hit a key with the control in focus and Keyup
when the key is released. If the key is a tab or arrow key (or alt shortcut)
you might only get keydown of the original control and keyup of the newly
activated control. I'm thinking this answer seems too obvious or did you
mean something else!

Regards,
Peter T

"Bill Case" wrote in message
...
Hi Peter;

Thanks; KeyDown solved it. What is the difference between KeyDown and

Keyup
? I know how keyboards work; i.e. scan codes and all that; but
programmaticlly why might I choose KeyDown over KeyUp or viceversa in VBA?

By "execute the right procedures" I meant the two procedures,

"InsertBlankRow
CntrlsOpen", that I had included with my original sample.

Regards Bill

"Peter T" wrote:

Hi Bill,

From help -
"The KeyPress event occurs when the user presses a key that produces a
typeable character (an ANSI key) on a running form while the form or a
control on it has the focus."

Keypress will not return Tab, Enter or Arrow keys

Use either the Keydown or KeyUp events and return Keycode.

What can I do to make <Tab execute the right procedures rather than

jump
to
the first enabled control?

I'm not sure what you mean by "execute the right procedures" but maybe
merely changing the tab orders (Tabindex) will suffice, try the tab

wizard
in View Tab order.

Regards,
Peter T


"Bill Case" wrote in message
...
Hi;

In my procedure below, I need to capture the <LineFeed <Space <Tab

or
<Click. I have managed to redirect everything but the <Tab. I have
tried
various values including 9, "9", Chr(9) and vbTab. Nothing works.

What can I do to make <Tab execute the right procedures rather than

jump
to
the first enabled control? Something in Excel is overriding VBA.

Private Sub EnterButt0_KeyPress(ByVal KeyAscii As

MSForms.ReturnInteger)


If KeyAscii = 9 Then
InsertBlankRow
CntrlsOpen
DayJoinedTxt0.SetFocus
End If

End Sub

Regards Bill