Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 39
Default Remoew row highlighting when workbook is closed

Hi,
Found a bit of code on the web (below) to highlight the active row but need
something that will remove the highlight (not the data) when the workbook is
closed so that the next time you open it nothing is highlighted.
At present when you re-open it a row is still highlighted and then when you
select a cell you end up with two rows highlighted!

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
Static OldRng As Range

On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target

End Sub

  #2   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 8,520
Default Remoew row highlighting when workbook is closed

Hi

Try the below in a fresh workbook..Paste the code in 'This WorkBook'
....Incase the target cells are already colored the below code will restore
the colors on selection change. and should also restore the colorindex on
save,close,print etc...Try and feedback....


Dim arrIndex As Variant
Dim OldCell As Range

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)

If Not OldCell Is Nothing Then ReSetColorIndex OldCell
SetColorIndex Target
Set OldCell = Target
Target.Interior.ColorIndex = 4
End Sub

Sub SetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
ReDim arrIndex(varRange.Count)
For Each cell In varRange
lngCount = lngCount + 1
arrIndex(lngCount) = cell.Interior.ColorIndex
Next
End Sub

Sub ReSetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
For Each cell In varRange
lngCount = lngCount + 1
cell.Interior.ColorIndex = arrIndex(lngCount)
Next
End Sub

--
Jacob


"KevHardy" wrote:

Hi,
Found a bit of code on the web (below) to highlight the active row but need
something that will remove the highlight (not the data) when the workbook is
closed so that the next time you open it nothing is highlighted.
At present when you re-open it a row is still highlighted and then when you
select a cell you end up with two rows highlighted!

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
Static OldRng As Range

On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target

End Sub

  #3   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 39
Default Remoew row highlighting when workbook is closed

Hi Jacob,
This works fine in a new workbook. However the code in my workbook
highlighted the entire row rather than a single cell.

"Jacob Skaria" wrote:

Hi

Try the below in a fresh workbook..Paste the code in 'This WorkBook'
...Incase the target cells are already colored the below code will restore
the colors on selection change. and should also restore the colorindex on
save,close,print etc...Try and feedback....


Dim arrIndex As Variant
Dim OldCell As Range

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)

If Not OldCell Is Nothing Then ReSetColorIndex OldCell
SetColorIndex Target
Set OldCell = Target
Target.Interior.ColorIndex = 4
End Sub

Sub SetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
ReDim arrIndex(varRange.Count)
For Each cell In varRange
lngCount = lngCount + 1
arrIndex(lngCount) = cell.Interior.ColorIndex
Next
End Sub

Sub ReSetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
For Each cell In varRange
lngCount = lngCount + 1
cell.Interior.ColorIndex = arrIndex(lngCount)
Next
End Sub

--
Jacob


"KevHardy" wrote:

Hi,
Found a bit of code on the web (below) to highlight the active row but need
something that will remove the highlight (not the data) when the workbook is
closed so that the next time you open it nothing is highlighted.
At present when you re-open it a row is still highlighted and then when you
select a cell you end up with two rows highlighted!

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
Static OldRng As Range

On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target

End Sub

  #4   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 8,520
Default Remoew row highlighting when workbook is closed

OK. Try th ebelow....Modified your code

Dim OldRng As Range

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target
End Sub

--
Jacob


"KevHardy" wrote:

Hi Jacob,
This works fine in a new workbook. However the code in my workbook
highlighted the entire row rather than a single cell.

"Jacob Skaria" wrote:

Hi

Try the below in a fresh workbook..Paste the code in 'This WorkBook'
...Incase the target cells are already colored the below code will restore
the colors on selection change. and should also restore the colorindex on
save,close,print etc...Try and feedback....


Dim arrIndex As Variant
Dim OldCell As Range

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)

If Not OldCell Is Nothing Then ReSetColorIndex OldCell
SetColorIndex Target
Set OldCell = Target
Target.Interior.ColorIndex = 4
End Sub

Sub SetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
ReDim arrIndex(varRange.Count)
For Each cell In varRange
lngCount = lngCount + 1
arrIndex(lngCount) = cell.Interior.ColorIndex
Next
End Sub

Sub ReSetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
For Each cell In varRange
lngCount = lngCount + 1
cell.Interior.ColorIndex = arrIndex(lngCount)
Next
End Sub

--
Jacob


"KevHardy" wrote:

Hi,
Found a bit of code on the web (below) to highlight the active row but need
something that will remove the highlight (not the data) when the workbook is
closed so that the next time you open it nothing is highlighted.
At present when you re-open it a row is still highlighted and then when you
select a cell you end up with two rows highlighted!

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
Static OldRng As Range

On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target

End Sub

  #5   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 39
Default Remoew row highlighting when workbook is closed

Sorry Jacob but this didn't work as expected. It will highlight selected row
and change when next row selected so old row is not highlighted anymore. But
if you close the workbook and open it again the last row selected is still
highlighted.

"Jacob Skaria" wrote:

OK. Try th ebelow....Modified your code

Dim OldRng As Range

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target
End Sub

--
Jacob


"KevHardy" wrote:

Hi Jacob,
This works fine in a new workbook. However the code in my workbook
highlighted the entire row rather than a single cell.

"Jacob Skaria" wrote:

Hi

Try the below in a fresh workbook..Paste the code in 'This WorkBook'
...Incase the target cells are already colored the below code will restore
the colors on selection change. and should also restore the colorindex on
save,close,print etc...Try and feedback....


Dim arrIndex As Variant
Dim OldCell As Range

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)

If Not OldCell Is Nothing Then ReSetColorIndex OldCell
SetColorIndex Target
Set OldCell = Target
Target.Interior.ColorIndex = 4
End Sub

Sub SetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
ReDim arrIndex(varRange.Count)
For Each cell In varRange
lngCount = lngCount + 1
arrIndex(lngCount) = cell.Interior.ColorIndex
Next
End Sub

Sub ReSetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
For Each cell In varRange
lngCount = lngCount + 1
cell.Interior.ColorIndex = arrIndex(lngCount)
Next
End Sub

--
Jacob


"KevHardy" wrote:

Hi,
Found a bit of code on the web (below) to highlight the active row but need
something that will remove the highlight (not the data) when the workbook is
closed so that the next time you open it nothing is highlighted.
At present when you re-open it a row is still highlighted and then when you
select a cell you end up with two rows highlighted!

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
Static OldRng As Range

On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target

End Sub



  #6   Report Post  
Posted to microsoft.public.excel.misc
external usenet poster
 
Posts: 39
Default Remoew row highlighting when workbook is closed

Is there anyway to just remove any highlighting in the entire workbook with
Work_BeforeClose? If there was this would do the trick :-)

"KevHardy" wrote:

Sorry Jacob but this didn't work as expected. It will highlight selected row
and change when next row selected so old row is not highlighted anymore. But
if you close the workbook and open it again the last row selected is still
highlighted.

"Jacob Skaria" wrote:

OK. Try th ebelow....Modified your code

Dim OldRng As Range

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not OldRng Is Nothing Then
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
End If
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target
End Sub

--
Jacob


"KevHardy" wrote:

Hi Jacob,
This works fine in a new workbook. However the code in my workbook
highlighted the entire row rather than a single cell.

"Jacob Skaria" wrote:

Hi

Try the below in a fresh workbook..Paste the code in 'This WorkBook'
...Incase the target cells are already colored the below code will restore
the colors on selection change. and should also restore the colorindex on
save,close,print etc...Try and feedback....


Dim arrIndex As Variant
Dim OldCell As Range

Private Sub Workbook_BeforeClose(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
If Not OldCell Is Nothing Then ReSetColorIndex OldCell
End Sub

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)

If Not OldCell Is Nothing Then ReSetColorIndex OldCell
SetColorIndex Target
Set OldCell = Target
Target.Interior.ColorIndex = 4
End Sub

Sub SetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
ReDim arrIndex(varRange.Count)
For Each cell In varRange
lngCount = lngCount + 1
arrIndex(lngCount) = cell.Interior.ColorIndex
Next
End Sub

Sub ReSetColorIndex(varRange As Range)
Dim lngCount As Long, cell As Range
For Each cell In varRange
lngCount = lngCount + 1
cell.Interior.ColorIndex = arrIndex(lngCount)
Next
End Sub

--
Jacob


"KevHardy" wrote:

Hi,
Found a bit of code on the web (below) to highlight the active row but need
something that will remove the highlight (not the data) when the workbook is
closed so that the next time you open it nothing is highlighted.
At present when you re-open it a row is still highlighted and then when you
select a cell you end up with two rows highlighted!

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
Static OldRng As Range

On Error Resume Next
Target.EntireRow.Interior.ColorIndex = 6
OldRng.EntireRow.Interior.ColorIndex = xlColorIndexNone
Set OldRng = Target

End Sub

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
GetValue - Closed Workbook? JMay Excel Discussion (Misc queries) 2 November 3rd 08 04:40 PM
closed workbook macro puiuluipui Excel Discussion (Misc queries) 1 July 4th 08 10:13 PM
Linking to a closed workbook Danedel Excel Worksheet Functions 2 February 3rd 06 06:43 PM
Value from a closed workbook Anthony Slater Excel Discussion (Misc queries) 5 May 17th 05 09:49 AM
copy worksheet from closed workbook to active workbook using vba mango Excel Worksheet Functions 6 December 9th 04 07:55 AM


All times are GMT +1. The time now is 06:15 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"