Mostra a seleção de células no Excel quando não está em foco

23

É realmente irritante que o Excel (2003 e 2007) não mostre qual célula, linha ou coluna selecionada quando a janela não está em foco. Eu normalmente quero consulte a célula ou linha atual enquanto trabalha em outro aplicativo.

Existe alguma solução ou correção que tornará a célula / linha destacada quando não estiver em foco? Eu sei que você pode copiar uma célula (Ctrl + C), mas é meio cansativo fazer isso todas as vezes.

    
por salle 14.04.2010 / 13:45

7 respostas

2

Você pode fazer algo assim, se precisar. Embora possa ser específico da planilha

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

Isso altera o que não está ativo de volta para branco e altera a célula ativa para amarelo. e ainda mostra quando a janela não está ativa. Não tenho certeza se esta é a melhor maneira, mas funciona

    
por 12.06.2010 / 09:07
2

Eu acho que existe um trabalho, mas depende da sua situação!

Você pode criar uma macro que é acionada quando a seleção é alterada e ela simplesmente altera o plano de fundo de cada célula. Quando você "sair" da célula, ela redefinirá o valor do plano de fundo da linha para branco e, em seguida, selecionará a nova linha.

Adicionei isso à minha Planilha1 na janela do Visual Basic.

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

Esta captura de tela foi realizada enquanto o aplicativo perdeu o foco.

Isso pode ser chato, mas você pode facilmente adicionar um botão que pode ativar ou desativar esse recurso!

Os negativos são (na minha cabeça: ele removerá qualquer realce atual que você tenha. Então, se você tiver destaque na sua página (células coloridas), então é melhor não usá-lo! Além disso, ele provavelmente imprimirá com as linhas destacadas !

    
por 28.04.2014 / 09:46
1

No Excel 2003, o endereço da célula atualmente selecionado é mostrado no canto superior esquerdo. Embora a célula não esteja destacada, você chega lá no meio do caminho.

    
por 14.04.2010 / 14:34
1

Aqui está uma modificação do código de @datatoo. Ele lê os valores anteriores para evitar a perda da cor de preenchimento atual. Também altera a cor do texto para que ele se destaque. Eu adicionei-o à planilha do Excel no editor de código (Alt-F11 do Excel).

Clique aqui para obter informações sobre como fazer um evento de alteração da planilha.

'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
    
por 25.04.2015 / 20:13
0

não há solução permanente para este problema.

uma solução alternativa (pode ficar irritante em algum momento) seria alterar o realce das células selecionadas enquanto elas são selecionadas e selecioná-las novamente para eliminar a cor.

Cole este código no código da Folha1 e vá até sua planilha, selecione algumas células, selecione outras e, em seguida, selecione novamente as primeiras a soltar a cor

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
    
por 27.08.2013 / 15:46
0

Uma solução simples que coloca uma cor de célula quando a seleção muda

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Selection.Interior.ColorIndex = xlColorIndexNone
    Selection.Interior.Color = RGB(204, 204, 204)
End Sub

Uma solução complexa que apenas altera a cor da célula quando o foco é perdido

Em um módulo padrão:

Option Explicit    
Public s As Range

Na (s) planilha (s) em que você deseja trabalhar:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Set s = Selection
End Sub

Em ThisWorkbook :

Private Sub Workbook_Deactivate()
    If s Is Nothing Then
        Set s = Selection
        Exit Sub
    End If
    s.Interior.ColorIndex = xlColorIndexNone
    s.Interior.Color = RGB(204, 204, 204)

    ' This is optional formatting to make the cells look more like they're actually selected
    s.Borders.Color = RGB(130, 130, 130)
    s.BorderAround _
    Color:=RGB(30, 130, 37), Weight:=xlThick
End Sub

Private Sub Workbook_Activate()
    If s Is Nothing Then
        Set s = Selection
        Exit Sub
    End If
    s.Interior.ColorIndex = xlColorIndexNone
    s.Borders.ColorIndex = xlColorIndexNone
End Sub

Citações: A solução simples é baseada em uma resposta anterior por @ Dave ; A solução complexa foi reunida de várias fontes, especialmente com a ajuda de @ JohnColeman em este post .
por 15.12.2016 / 19:32
0

Use uma forma para destacar a seleção.

Nota: Funciona apenas quando muda para outra janela do Excel. Como solução alternativa, você pode abrir uma janela vazia do Excel e alternar para esta janela antes de alternar para outro aplicativo para manter o destaque.

Basta adicionar isso ao seu código do ThisWorkbook (seu workBOOK, não o código da sua planilha). Isso funcionará para todas as planilhas em sua pasta de trabalho.

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    DeleteSelectionHighlight
End Sub
Private Sub Workbook_WindowActivate(ByVal Wn As Window)
    DeleteSelectionHighlight
End Sub
Private Sub Workbook_WindowDeactivate(ByVal Wn As Window)
  On Error Resume Next
    Dim shp As Shape
    Application.ScreenUpdating = False

    Set shp = ActiveSheet.Shapes("SelectionHighlight")
    If Err.Number <> 0 Then
        Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 1, 1, 1, 1)
        With shp 'Format shape to your preference
            .Name = "SelectionHighlight"
            .Line.ForeColor.RGB = RGB(226, 0, 0) ' Border color
            .Line.Weight = 1.5
            .Line.DashStyle = msoLineSolid
            .Fill.Visible = msoFalse 'No background
            '.Fill.ForeColor.RGB = RGB(0, 153, 0) 'Background color
            '.Fill.Transparency = 0.95 'Background transparency
        End With
    End If

    Dim oldZoom As Integer
    oldZoom = Wn.Zoom
    Wn.Zoom = 100 'Set zoom at 100% to avoid positioning errors
    With shp
        .Top = Wn.Selection.Top   'Tweak the offset to fit your desired line weight
        .Left = Wn.Selection.Left 'Tweak the offset to fit your desired line weight
        .Height = Wn.Selection.Height
        .Width = Wn.Selection.Width
    End With
    Wn.Zoom = oldZoom 'Restore previous zoom
    Application.ScreenUpdating = True
End Sub

Private Sub DeleteSelectionHighlight()
  On Error Resume Next
  Dim shp As Shape
    Set shp = ActiveSheet.Shapes("SelectionHighlight")
    shp.Delete
End Sub

Você pode até mesmo formatar a forma de acordo com sua preferência ajustando o código.

As vantagens são:

  • você não perde sua formatação original quando o Excel falha você tem uma falha de energia
  • Você não perde sua formatação original ao usar CTRL + [de outra pasta de trabalho que altera a planilha ativa
  • Você não perde o destaque ao fazer alterações na outra janela do Excel, em comparação com a solução CTRL + C
por 25.01.2017 / 06:26