Muitas vezes, durante o manuseio de listas, temos a necessidade de destacar visualmente a linha que estamos analisando. Apresentaremos, neste artigo, uma maneira de implementar esta funcionalidade, automaticamente, em Excel.
Para into precisaremos criar uma sub-rotina em VBA.
Para melhor entendimento do assunto VBA, leia o artigo "Excel - Você sabe o que é VBA?"
Entendendo o Modelo
Nossa tabela modelo é formada por 8 colunas (da coluna B até a coluna I) e por 13 linhas (da linha 7 até a linha 19). Quando alguma célula dentro dessa região for selecionada, a linha da célula deverá ser destacada com uma cor diferente.
Criando nossa sub-rotina VBA
Desejamos criar, então, uma sub-rotina que ficará vinculada à planilha PAGAMENTOS. Para isto, precisamos abrir o editor Visual Basic For Applications. Isto pode ser feito pelo menu DESENVOLVEDOR ou o pelo atalho ALT+F11.
Com o editor do VBA aberto, damos um duplo-clique na planilha PAGAMENTOS e inserimos (podemos copiar e colar) o código abaixo:
'O OBJETO "TARGET" RECEBE A CÉLULA QUE ACABA DE SER SELECIONADA,
'POR CLIQUE DO MOUSE OU PELO TECLADO
'DESCOBRINDO QUAL A ÚLTIMA LINHA PREENCHIDA NA PLANILHA
ULTIMA = Range("B6").End(xlDown).Row
'SAIR DO PROCEDIMENTO SE A CÉLULA SELECIONADA NÃO ESTIVER ENTRE AS LINHAS 7 E A ÚLTIMA PREENCHIDA.
If Target.Row < 7 Or Target.Row > ULTIMA Then Exit Sub
'SAIR DO PROCEDIMENTO SE A CÉLULA SELECIONADA NÃO ESTIVER ENTRE AS COLUNAS 2 E 9 (DE B ATÉ I).
If Target.Column < 2 Or Target.Column > 9 Then Exit Sub
'APLICANDO PADRÃO INICIAL EM TODAS AS CÉLULAS DA TABELA
With Range("B7" & ":I" & ULTIMA).Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
'COM A LINHA SELECIONADA (TARGET.ROW), DEFININDO FORMATAÇÃO DE DESTAQUE
With Range("B" & Target.Row & ":I" & Target.Row).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent6
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End Sub
Entendendo a sub-rotina passo-a-passo
Após selecionarmos uma célula qualquer na planilha PAGAMENTOS, a sub-rotina é disparada.Nas duas ilustrações seguintes estamos verificando se a célula selecionada (TARGET) está entre as linhas 7 e ULTIMA (no caso, 19) e as colunas B e I (da 2 até a 9):
O fragmento abaixo remove a formatação especial de toda a tabela (retorna todas as linhas à formatação básica).
E em seguida aplica um formato diferenciado na linha (de B até I) inde se encontra a célula selecionada (TARGET.ROW).
Pronto. Agora, sempre que alterarmos a célula selecionada, se ela estiver dentro do intervalo que discutimos anteriormente, sua linha será destacada.
Para baixar o modelo pronto , CLIQUE AQUI.
Leiam também outros artigos em NOSSO BLOG.
Aproveitem e conheçam o site da nossa empresa: www.excelline.net.
Contem conosco!
Se você quiser saber mais sobre VBA, recomentamos o seguinte livro:
Curta a nossa página
Agosto/2014
GILBERTO GOMES
ExcelLine - Office World
Google+ +gilberto gomes