Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

It's really annoying that Excel (2003 and 2007) doesn't show what cell, row or column that is selected when the window is not in focus. I typically want to refer to the current cell or row while working in another application.

Is there any workaround or fix that will make the cell/row highlighted when not in focus? I know that you can copy a cell (Ctrl+C) but it's kind of tiresome to do that every time.

share|improve this question
1  
Cntrl+C is no good, since I want to keep my clipboard contents –  Keltari Jun 24 '13 at 15:58
    
possible duplicate of Cursor and selection invisible when focus is lost –  Dave Apr 28 '14 at 7:56

5 Answers 5

In Excel 2003 the currently selected cell address is shown in the upper left. Although the cell isn't highlighted, it gets you partway there.

share|improve this answer

You can do something like this if you need to. Although it might be sheet specific

Dim wasActive As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If wasActive = Empty Then wasActive = "A1"
Range(wasActive).Interior.ColorIndex = "0"
ActiveCell.Interior.ColorIndex = "6"
wasActive = ActiveCell.Address
End Sub

This changes what is not active back to white, and changes the activecell to yellow. and still shows when the window is not active. Not sure this is the best way, but it works

share|improve this answer
    
Dude. Thank you! –  data Jun 4 '13 at 7:31

there is no permanent solution to this problem.

a workaround (may get annoying in a while) would be to change the highlighting of the selected cells while they are selected and re-select them again to drop the color.

Stick this code in Sheet1 code behind and go to you spreadsheet and select some cells, select other ones then re-select the first ones to drop the color

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cell As Range

    For Each cell In Target.Cells
        If cell.Interior.Color = RGB(60, 150, 230) Then
            cell.Interior.Pattern = xlNone
        Else
            cell.Interior.Color = RGB(60, 150, 230)
        End If
    Next
End Sub
share|improve this answer

I think there is a work around but, it really depends on your situation!

You can create a macro which fires when the selection changes and it simply changes the background of each cell. When you 'leave' the cell it will reset the row's background value to white and then select the new row.

I added this to my Sheet1 in the Visual Basic window.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Cells.Interior.ColorIndex = xlColorIndexNone
    ActiveCell.EntireRow.Interior.ColorIndex = 34
End Sub

This screen shot was taken while the application had lost focus.

This may be annoying but you could easily add a button which could toggle this feature on or off!

The negatives are (from top of my head : It will remove any current highlighting you have. So if you have highlighting on your page (cells coloured) then best not use this! Also, it will probably print with the highlighted rows!

enter image description here

share|improve this answer

Here is a modification of the code from @datatoo. It reads the previous values to prevent losing the current fill color. It also changes the text color to make it further stand out. I added it to the Excel sheet in the code editor (Alt-F11 from Excel).

Click here for information on making a worksheet change event.

'VBA code for Excel to show active cell in worksheet when worksheet is out of focus

Dim wasActive As String
Dim originalFillColor As String
Dim originalTextColor As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    'Set up colors on load
    If wasActive = Empty Then
        wasActive = "A1"
        originalFillColor = Range(wasActive).Interior.Color
        originalTextColor = Range(wasActive).Font.Color
    End If

    'Reset previous cell to original color values; If statement prevents removal of grid lines by using "0" for clear fill color when white
    If originalFillColor = 16777215 Then
        Range(wasActive).Interior.ColorIndex = "0"
        Range(wasActive).Font.Color = originalTextColor
    Else
        Range(wasActive).Interior.Color = originalFillColor
        Range(wasActive).Font.Color = originalTextColor
    End If

    'Set new colors and change active cell to highlighted colors (black fill with white text)
    originalFillColor = ActiveCell.Interior.Color
    originalTextColor = ActiveCell.Font.Color
    wasActive = ActiveCell.Address
    ActiveCell.Interior.ColorIndex = "1"
    ActiveCell.Font.ColorIndex = "2"

End Sub
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.