For the reasons Shane mentioned I doubt you individual Shift, Ctrl or Alt
down will be of use for you. OTH, Ctrl+Shift might serve your needs
Private Declare Function GetAsyncKeyState Lib "user32" ( _
ByVal vKey As Long) As Integer
Function ShiftCtrl() As Boolean
If GetAsyncKeyState(vbKeyControl) Then
ShiftCtrl = GetAsyncKeyState(vbKeyShift)
' the above could go in a normal module and called from other object modules
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim RowPos As Long, ColPos As Long
If Target.Count = 1 Then
If ShiftCtrl Then
RowPos = Target.Row
ColPos = 3
Cells(RowPos, ColPos) = "x"
No need to qualify the sheet in the sheet module unless you want to refer to
some other sheet.
If you need to know more than simply Ctrl+Shift I'm sure you can adapt the
above for your needs.