View Single Post
  #9   Report Post  
Posted to microsoft.public.excel.programming
Patrick Molloy Patrick Molloy is offline
external usenet poster
 
Posts: 1,049
Default detecting keypress(es) in a cell

I don't think you can code the + and - keys, as they put any cell directly
into edit mode. So how about the left and right arrow keys

in the code below, the tow keys set a value to increase or decrease a cell
or cells by . this handles multiple cells

Option Explicit
Sub setkeys()
Application.OnKey "{right}", "IncreaseCellValue"
Application.OnKey "{left}", "DecreaseCellValue"
End Sub

Sub unsetkeys()
Application.OnKey "{right}"
Application.OnKey "{left}"
End Sub

Sub IncreaseCellValue()
ChangeCellValue 0.25
End Sub
Sub DecreaseCellValue()
ChangeCellValue -0.25
End Sub

Sub ChangeCellValue(amount As Double)
Dim target As Range
Dim cell As Range
Set target = Intersect(Selection, Range("range1"))
If Not target Is Nothing Then
For Each cell In target
If IsNumeric(cell.Value) Then
cell.Value = cell.Value + amount
End If
Next
End If
End Sub


"SmartWombat" wrote in message
...
I know this is an old, old thread.

What I want is that for cells in the named range Range("WeekDays") that on
typinging "+" the value is increased by 0.25 and on pressing "-" the value
decreased by 0.25.

What's the best way of achieving that in Excel 2003 ?

"Tom Ogilvy" wrote:

Good thought.

Sub SetKey()
Application.OnKey "~", "MyEnter"
Application.OnKey "+~", "MyShiftEnter"
End Sub

Sub UnSetKey()
Application.OnKey "~"
Application.OnKey "+~"
End Sub

Sub MyEnter()
MsgBox "In MyEnter"
End Sub
Sub MyShiftEnter()
MsgBox "In MyShiftEnter"
End Sub

--
Regards,
Tom Ogilvy

"Vic Eldridge" wrote in message
...
I would like to detect the Enter key code and SHIFT+Enter keys

combination.

Application.Onkey can be used to respond to keyboard events.


Regards,
Vic Eldridge