Cursor Movement

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

The following code words fine, as long as Excel is set to move the cursor to
the right after hitting enter. If I enter something however and hit the
cursor up, down, or to the left, the code obviously doesn't work. How do I
rewrite this code so that regardless of whether a user has set Excel to move
right, left, up, or down after enter (or does so manually), it still works?
My intent is that for the activecell in Col K, if what the user enters is >
the value in Col I (same row), then verbiage is entered on the same row, in
Col L. If the value is <= Col I (same row), any verbiage on the same row in
Col L is cleared. Thanks for any assistance that can be provided.

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, Range("$K$8:$K$65000")) Is Nothing) Then
If Target.Value > ActiveCell.Offset(0, -3) Then
ActiveCell.Offset(0, 0) = "DELEGATION LEVEL EXCEEDED!"
ActiveCell.Font.ColorIndex = 3
End If
If Target.Value = ActiveCell.Offset(0, -3) Then
ActiveCell.Offset(0, 0).ClearContents
End If
If Target.Value < ActiveCell.Offset(0, -3) Then
ActiveCell.Offset(0, 0).ClearContents
End If
End If
End Sub
 
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, Range("$K$8:$K$65000")) Is Nothing) Then
On Error goto ErrHandler
Application.EnableEvents = False
If Target.Value > Target.Offset(0, -4) Then
Target.Offset(0,1) = "DELEGATION LEVEL EXCEEDED!"
Target.Offset(0,1).Font.ColorIndex = 3
End If
If Target.Value = Target.Offset(0, -4) Then
Target.Offset(0, 1).ClearContents
End If
If Target.Value < Target.Offset(0, -4) Then
Target.Offset(0, 1).ClearContents
End If
End If
ErrHandler:
Application.EnableEvents = True
End Sub
 
Great! Thanks Tom!

Tom Ogilvy said:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Intersect(Target, Range("$K$8:$K$65000")) Is Nothing) Then
On Error goto ErrHandler
Application.EnableEvents = False
If Target.Value > Target.Offset(0, -4) Then
Target.Offset(0,1) = "DELEGATION LEVEL EXCEEDED!"
Target.Offset(0,1).Font.ColorIndex = 3
End If
If Target.Value = Target.Offset(0, -4) Then
Target.Offset(0, 1).ClearContents
End If
If Target.Value < Target.Offset(0, -4) Then
Target.Offset(0, 1).ClearContents
End If
End If
ErrHandler:
Application.EnableEvents = True
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top