Esse código destaca toda a linha onde há a célula ativa no momento, alterando sua cor de fundo. Toda vez que uma célula receber o foco, a linha toda ficará realçada e ao sair dela, voltará ao normal.

Um detalhe, é que, foi criada uma condição para excluir as linhas cuja formatação de fundo não poderia ser alterada, como por exemplo, uma linha que contenha um título e já esteja com um padrão de fundo definido de forma diferenciada.

Vamos ao código.

No módulo de classe da Plan1, declare, na seção Geral do mesmo, a variável LinhaSelecAnterior, pois ela ficará acessível a toda a Plan1.

Digite o seguinte código:

Dim LinhaSelecAnterior As Range

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Select Case ActiveCell.Row

        Case 1, 2
            'Coloque neste 'case' as linhas que não devem ser
            'destacadas na seleção
            'Exemplo: Linhas de título; Aqui eu defini como as linhas 1 e 2

            'Remove cor de fundo da linha selecionada anteriormente
            Select Case LinhaSelecAnterior.Row

                Case Is <> 1, 2

                    Rows(LinhaSelecAnterior.Row).Interior.ColorIndex = 0

                End Select

        Case Else

            'Altera a cor de fundo da linha selecionada
            Rows(ActiveCell.Row).Interior.ColorIndex = 15

            'Remove a cor de fundo quando a linha perde a seleção
            If Not LinhaSelecAnterior Is Nothing Then

                'Verifica se a linha atual já estava selecionada
                'neste momento, caso seja uma nova linha selecionada
                'remove a cor de fundo.
                If ActiveCell.Row <> LinhaSelecAnterior.Row Then

                    Rows(LinhaSelecAnterior.Row).Interior.ColorIndex = 0

                End If

            End If

            'Inicializa a variavel informando a seleção atual
            'que será utilizada no inicio do procedimento
            'como sendo a seleção anterior
            Set LinhaSelecAnterior = ActiveCell

    End Select

End Sub

Salve e encerre o ambiente do VBA.

Pronto! Agora quando você selecionar qualquer célula da Plan1, a linha inteira será destacada das demais.

Escrevi outro artigo sobre um efeito legal para suas planilhas, leia e aprenda como fazer um efeito zebrado em suas planilhas, de maneira automática, ou seja, se você excluir ou adicionar mais linhas, não perderá a formatação, sempre terá uma linha de cor diferente da linha anterior.

Um abraço a todos.

 

Termos aprendidos neste artigo:

Range Retorna um objeto Range representando uma única célula ou um intervalo de células.
ActiveCell Retorna um objeto Range representando a célula ativa da janela ativa (a janela visível) ou da janela especificada. Se a janela não estiver exibindo uma planilha, essa propriedade falhará. Somente leitura.
Row Retorna o número da primeira linha da primeira área do intervalo. Long somente leitura.
Rows Para um objeto Application, retorna um objeto Range representando todas as linhas da planilha ativa. Se o documento ativo não for uma planilha, a propriedade Rows falhará. Para um objeto Range, retorna um objeto Range representando as linhas no intervalo especificado. Para um objeto Worksheet, retorna um objeto Range representando todas as linhas da planilha especificada. Objeto Range somente leitura.
Interior Retorna um objeto Interior representando o interior do objeto especificado.
ColorIndex Retorna ou define a cor interna. A cor é especificada como um valor de índice na paleta de cores atual.
Worksheet_SelectionChange O Evento SelectionChange ocorre quando a seleção é alterada em uma planilha.

Antes de efetuar o download do arquivo de exemplo, convido você a socializar conosco.

Escolha uma das opções abaixo. Seguir no twitter, assinar nossa Newsletter...

Isso nos ajuda na divulgação do site e te permite ficar sempre atualizado das novidades. Fico muito grato pela sua colaboração.

Digite seu email:

Você receberá um email para ativar o cadastro, ok!