ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Trigger on leaving cell (of entire column) (https://www.excelbanter.com/excel-programming/341963-trigger-leaving-cell-entire-column.html)

Lava[_3_]

Trigger on leaving cell (of entire column)
 

The code below highlights the entire row I'm working on. When I leav
field $A$1 it popups a messagebox (just by example). I don't need t
make any changes to $A$1. All I have to do is leave it.

My question is.... what code should be replaced by what code to make i
work for every field in Column B? When the current cell is in column
and I press enter or move the down-cursor (or up button) I wish th
trigger to execute. Basically vertical movement in column B shoul
trigger it. I assume something with the IF condition *If Target.Addres
= "$A$1" Then* has to be changed, but what :) Trial and error so far.


Code
-------------------
Dim rTriggerCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Triggers highlight of target row
Dim strRow As String
Cells.FormatConditions.Delete

With Target.EntireRow
strRow = .Address
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=COUNTA(" & strRow & ")0"

.FormatConditions(1).Font.Bold = True
.FormatConditions(1).Interior.ColorIndex = 34
End With

'Triggers an action upon user exiting cell A1
On Error Resume Next
Application.EnableEvents = False
'Entered into Trigger cell
If Target.Address = "$A$1" Then
Set rTriggerCell = Target
Application.EnableEvents = True
On Error GoTo 0
Exit Sub
End If

If Not rTriggerCell Is Nothing Then 'They are leaving A1
MsgBox "You just left cell A1", vbInformation, "OzGrid.com"
Set rTriggerCell = Nothing
End If
Application.EnableEvents = True
On Error GoTo 0
End Su
-------------------

--
Lav
-----------------------------------------------------------------------
Lava's Profile: http://www.excelforum.com/member.php...fo&userid=2779
View this thread: http://www.excelforum.com/showthread.php?threadid=47334


Tom Ogilvy

Trigger on leaving cell (of entire column)
 
Target.Address gives the address of the cell you have just selected/entered,
not the cell you just left.

In any event, for the same functionality you could use

If Target.column = 2 then

--
Regards,
Tom Ogilvy

"Lava" wrote in message
...

The code below highlights the entire row I'm working on. When I leave
field $A$1 it popups a messagebox (just by example). I don't need to
make any changes to $A$1. All I have to do is leave it.

My question is.... what code should be replaced by what code to make it
work for every field in Column B? When the current cell is in column B
and I press enter or move the down-cursor (or up button) I wish the
trigger to execute. Basically vertical movement in column B should
trigger it. I assume something with the IF condition *If Target.Address
= "$A$1" Then* has to be changed, but what :) Trial and error so far.


Code:
--------------------
Dim rTriggerCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Triggers highlight of target row
Dim strRow As String
Cells.FormatConditions.Delete

With Target.EntireRow
strRow = .Address
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=COUNTA(" & strRow & ")0"

.FormatConditions(1).Font.Bold = True
.FormatConditions(1).Interior.ColorIndex = 34
End With

'Triggers an action upon user exiting cell A1
On Error Resume Next
Application.EnableEvents = False
'Entered into Trigger cell
If Target.Address = "$A$1" Then
Set rTriggerCell = Target
Application.EnableEvents = True
On Error GoTo 0
Exit Sub
End If

If Not rTriggerCell Is Nothing Then 'They are leaving A1
MsgBox "You just left cell A1", vbInformation, "OzGrid.com"
Set rTriggerCell = Nothing
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub
--------------------


--
Lava
------------------------------------------------------------------------
Lava's Profile:

http://www.excelforum.com/member.php...o&userid=27793
View this thread: http://www.excelforum.com/showthread...hreadid=473346




K Dales[_2_]

Trigger on leaving cell (of entire column)
 
First you need a way to track what column you have left, just like
rTriggerCell is used to track when you are in cell $A$1. So at the top of
the module, right above or under Dim rTriggerCell as Range, add a line saying:
Dim TriggerColumn as Integer
Now within the Worksheet_SelectionChange sub, add this block of code:

' See if both the prior selection and the new selection (Target) are in
column B:
If TriggerColumn = 2 And Target.Cells(1,1).Column=2 Then
MsgBox "Vertical move in column B"
End If
TriggerColumn = Target.Cells(1,1).Column

A couple notes:
- In one specific case this will fail: If the workbook is opened with the
selection in column B and the user moves to another cell in column B, this
first move will not be detected unless you add code to the Workbook_Open
procedure to set the value of TriggerColumn (you would need to make it a
Public variable to do this)
- There are ways to more efficiently combine this with the existing code,
but I want to keep it simple for you
--
- K Dales


"Lava" wrote:


The code below highlights the entire row I'm working on. When I leave
field $A$1 it popups a messagebox (just by example). I don't need to
make any changes to $A$1. All I have to do is leave it.

My question is.... what code should be replaced by what code to make it
work for every field in Column B? When the current cell is in column B
and I press enter or move the down-cursor (or up button) I wish the
trigger to execute. Basically vertical movement in column B should
trigger it. I assume something with the IF condition *If Target.Address
= "$A$1" Then* has to be changed, but what :) Trial and error so far.


Code:
--------------------
Dim rTriggerCell As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Triggers highlight of target row
Dim strRow As String
Cells.FormatConditions.Delete

With Target.EntireRow
strRow = .Address
.FormatConditions.Delete
.FormatConditions.Add Type:=xlExpression, _
Formula1:="=COUNTA(" & strRow & ")0"

.FormatConditions(1).Font.Bold = True
.FormatConditions(1).Interior.ColorIndex = 34
End With

'Triggers an action upon user exiting cell A1
On Error Resume Next
Application.EnableEvents = False
'Entered into Trigger cell
If Target.Address = "$A$1" Then
Set rTriggerCell = Target
Application.EnableEvents = True
On Error GoTo 0
Exit Sub
End If

If Not rTriggerCell Is Nothing Then 'They are leaving A1
MsgBox "You just left cell A1", vbInformation, "OzGrid.com"
Set rTriggerCell = Nothing
End If
Application.EnableEvents = True
On Error GoTo 0
End Sub
--------------------


--
Lava
------------------------------------------------------------------------
Lava's Profile: http://www.excelforum.com/member.php...o&userid=27793
View this thread: http://www.excelforum.com/showthread...hreadid=473346




All times are GMT +1. The time now is 10:01 PM.

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