#1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 336
Default Active Cell

Hello,

I have soem code that doesnt quite work properly and was hoping for some
guidance.

I want to colour the first column of the selected row black, so it
highlights to the user which row they are in. Then when the user moves to
another row the first column of the previous cell reverst back to no colour.
Here is the code so far:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lRow As Long

For lRow = 34 To 100
If lRow = ActiveCell.Row Then
Cells(Target.Row, 1).Interior.ColorIndex = 1
Else
Cells(Target.Row, 1).Interior.ColorIndex = xlNone
End If

Next

End Sub

I think the problem is with the line:

If lRow = ActiveCell.Row Then

Can anyone help me?

Thanks in advance.

Martin
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Active Cell


This is the code I use in my sheets to do what you're talking about, it
always keeps the current row highlighted all the way across the screen.
Works great for me.

Code:
--------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Const cnNUMCOLS As Long = 100
Const cnHIGHLIGHTCOLOR As Long = 36 'default lt. yellow
Static rOld As Range
Static nColorIndices(1 To cnNUMCOLS) As Long
Dim i As Long
If Not rOld Is Nothing Then 'Restore color indices
With rOld.Cells
If .Row = ActiveCell.Row Then Exit Sub 'same row, don't restore
For i = 1 To cnNUMCOLS
.Item(i).Interior.ColorIndex = nColorIndices(i)
Next i
End With
End If
Set rOld = Cells(ActiveCell.Row, 1).Resize(1, cnNUMCOLS)
With rOld
For i = 1 To cnNUMCOLS
nColorIndices(i) = .Item(i).Interior.ColorIndex
Next i
.Interior.ColorIndex = cnHIGHLIGHTCOLOR
End With
End Sub
--------------------

This code would go into the worksheet tab.


--
JBeaucaire
------------------------------------------------------------------------
JBeaucaire's Profile: http://www.thecodecage.com/forumz/member.php?userid=73
View this thread: http://www.thecodecage.com/forumz/sh...ad.php?t=45419

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 336
Default Active Cell

Thank you for sharing that, it works perfectly and is much more advanced than
my code so it will help to increase my understanding.

Many thanks,

Martin

"JBeaucaire" wrote:


This is the code I use in my sheets to do what you're talking about, it
always keeps the current row highlighted all the way across the screen.
Works great for me.

Code:
--------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Const cnNUMCOLS As Long = 100
Const cnHIGHLIGHTCOLOR As Long = 36 'default lt. yellow
Static rOld As Range
Static nColorIndices(1 To cnNUMCOLS) As Long
Dim i As Long
If Not rOld Is Nothing Then 'Restore color indices
With rOld.Cells
If .Row = ActiveCell.Row Then Exit Sub 'same row, don't restore
For i = 1 To cnNUMCOLS
.Item(i).Interior.ColorIndex = nColorIndices(i)
Next i
End With
End If
Set rOld = Cells(ActiveCell.Row, 1).Resize(1, cnNUMCOLS)
With rOld
For i = 1 To cnNUMCOLS
nColorIndices(i) = .Item(i).Interior.ColorIndex
Next i
.Interior.ColorIndex = cnHIGHLIGHTCOLOR
End With
End Sub
--------------------

This code would go into the worksheet tab.


--
JBeaucaire
------------------------------------------------------------------------
JBeaucaire's Profile: http://www.thecodecage.com/forumz/member.php?userid=73
View this thread: http://www.thecodecage.com/forumz/sh...ad.php?t=45419


  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,646
Default Active Cell

Maybe you want this sub:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range(Cells(34, 1), Cells(100, 1)).Interior.ColorIndex = xlNone
If Target.Row = 34 And Target.Row <= 100 Then
Cells(Target.Row, 1).Interior.ColorIndex = 1
End If
End Sub

Regards,
Stefi


€˛Martin€¯ ezt Ć*rta:

Hello,

I have soem code that doesnt quite work properly and was hoping for some
guidance.

I want to colour the first column of the selected row black, so it
highlights to the user which row they are in. Then when the user moves to
another row the first column of the previous cell reverst back to no colour.
Here is the code so far:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lRow As Long

For lRow = 34 To 100
If lRow = ActiveCell.Row Then
Cells(Target.Row, 1).Interior.ColorIndex = 1
Else
Cells(Target.Row, 1).Interior.ColorIndex = xlNone
End If

Next

End Sub

I think the problem is with the line:

If lRow = ActiveCell.Row Then

Can anyone help me?

Thanks in advance.

Martin

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 336
Default Active Cell

Stefi, even simpler and works in the row range I need.

Thank you

"Stefi" wrote:

Maybe you want this sub:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range(Cells(34, 1), Cells(100, 1)).Interior.ColorIndex = xlNone
If Target.Row = 34 And Target.Row <= 100 Then
Cells(Target.Row, 1).Interior.ColorIndex = 1
End If
End Sub

Regards,
Stefi


€˛Martin€¯ ezt Ć*rta:

Hello,

I have soem code that doesnt quite work properly and was hoping for some
guidance.

I want to colour the first column of the selected row black, so it
highlights to the user which row they are in. Then when the user moves to
another row the first column of the previous cell reverst back to no colour.
Here is the code so far:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lRow As Long

For lRow = 34 To 100
If lRow = ActiveCell.Row Then
Cells(Target.Row, 1).Interior.ColorIndex = 1
Else
Cells(Target.Row, 1).Interior.ColorIndex = xlNone
End If

Next

End Sub

I think the problem is with the line:

If lRow = ActiveCell.Row Then

Can anyone help me?

Thanks in advance.

Martin



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,646
Default Active Cell

You are welcome! Thanks for the feedback!
Stefi

€˛Martin€¯ ezt Ć*rta:

Stefi, even simpler and works in the row range I need.

Thank you

"Stefi" wrote:

Maybe you want this sub:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range(Cells(34, 1), Cells(100, 1)).Interior.ColorIndex = xlNone
If Target.Row = 34 And Target.Row <= 100 Then
Cells(Target.Row, 1).Interior.ColorIndex = 1
End If
End Sub

Regards,
Stefi


€˛Martin€¯ ezt Ć*rta:

Hello,

I have soem code that doesnt quite work properly and was hoping for some
guidance.

I want to colour the first column of the selected row black, so it
highlights to the user which row they are in. Then when the user moves to
another row the first column of the previous cell reverst back to no colour.
Here is the code so far:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lRow As Long

For lRow = 34 To 100
If lRow = ActiveCell.Row Then
Cells(Target.Row, 1).Interior.ColorIndex = 1
Else
Cells(Target.Row, 1).Interior.ColorIndex = xlNone
End If

Next

End Sub

I think the problem is with the line:

If lRow = ActiveCell.Row Then

Can anyone help me?

Thanks in advance.

Martin

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Row select mode to highlight active row of active cell Bart Fay[_2_] Excel Discussion (Misc queries) 0 May 11th 10 09:34 PM
run macro although blinking cursor is active in an active cell bartman1980 Excel Programming 1 December 20th 07 11:29 AM
referring to formula in a non active cell from active cell nickname Excel Discussion (Misc queries) 1 June 21st 07 12:11 PM
I need to sort an active sheet using the col of the active cell HamFlyer Excel Programming 3 June 6th 06 07:25 PM
Copy from active sheet and paste into new sheet using info from cell in active Ingve Excel Programming 3 January 23rd 06 09:57 PM


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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"