Destacar Célula Ativa Excel

Vamos agora aprender como formatar condicionalmente a célula ativa de uma planilha, isto é, quando você selecionar uma célula, automaticamente ela ficar com uma formatação diferente de todas as outras e isso valor para qualquer célula posteriormente selecionada.

Vale salientar antes do início do procedimento que você deve ter conhecimento dos seguintes recursos do Microsoft Office Excel 2007 (Ainda que não seja estritamente necessário conhecê-los para aplicar o exemplo):

.Gerenciador de Nomes (Nomes Dinâmicos);
.Formatação Condicional (Fórmulas nos critérios de formatação);
.Fórmula nativa do Excel Chamada "=Endereço()" (sem aspas);
.Saber utilizar Visual Basic for Application (ou saber programar);

Ok, se você souber todos requisitos acima, não terá dificuldades em entender e utilizar esse exemplo, mas caso não tenha (na pior das hipóteses) nenhum conhecimento de nada acima citado, não tem problema, pois tentarei ser o mais claro e simples no exemplo.

Vamos lá!

Primeiro, Temos que criar o nome dinâmico que vai armazenar o endereço da célula ativa (aquela que sempre será clicada). Para tal, vá em "Fórmulas > Gerenciador de Nomes" ou aperte CTRL+F3.

Na janela que abrir clique em novo. Na janela seguinte, em "Nome", digite "EnderecoCelulaAtiva" (sem as aspas). Em "Refere-se a" digite "=Endereço(1;1)" (sem as aspas). Clique em OK e depois em Fechar.

Segundo passo, selecione toda a planilha ativa (CTRL+T) e vá em "Início > Formatação Condicional > Gerenciar Regras" ou aperte ALT+C+L+R. Na janela que abrir, clique em "Nova Regra". Na janela que abrir, clique em "Usar uma fórmula para determinar quais células devem ser formatadas". Digite a fórmula "=endereço(lin(a1);col(a1))=EnderecoCelulaAtiva" (sem as aspas). Clique em formatar e selecione os tipos de formatações que você deseja que a célula contenha, por exemplo, preenchimento azul. Clique Ok e novamente OK.

Terceiro e ultimo passo, vá em "Desenvolvedor > Visual Basic" ou aperte ALT+F11. Na janela do Visual Basic, do lado esquerdo, dê duplo clique em "EstaPasta_de_Trabalho". Na página em branco que aparecerá, insira o código:

Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
With ActiveWorkbook.Names("EnderecoCelulaAtiva")
.RefersToR1C1 = "=address(" & ActiveCell.Row & "," & ActiveCell.Column & ")"
End With
End Sub

Prontinho!

Toda vez que você clicar em uma célula na sua planilha, esta será formatada como você especificou na formatação condicional.

Segue o link para um vídeo onde mostra passo a passo como realizar o procedimento deste exemplo. A narração do vídeo está em inglês, mas nada que o narrador fala é importante para a compreensão do vídeo.
Não esqueça também de que as fórmulas usadas no vídeo estão em inglês, ou seja, a fórmula "=Endereço()" usada aqui é "=ADDRESS()" no vídeo, "=Lin()" e "=Col()" são "=ROW()" e "=COLUMN()" no vídeo e o nome dinâmico "EnderecoCelulaAtiva" usado aqui é "ActiveCellAddress" no vídeo. Eis o link: Vídeo Destacar célula ativa

Bom aprendizado!


Nome do Autor

Sobre o autor

Flávio Santos é o editor-chefe do Tecla Ti. Vice campeão de todas as Américas em Tecnologia da Informação pela Worldskills Americas. Especialista Microsoft Office, programador VBA, C, JAVA, PHP e desenvolvedor de aplicações. Leia Mais sobre o autor >>>

27 comentários:

Não funcionou comigo.
Minha versão é a Microsoft Office Excel (12.0.4518.1014).

ja tentei varias vezes.

O resultado é sempre o mesmo: NÃO FUNCIONOU.

Jonas, você olhou o link do site que eu indiquei, ou seja, esse link: http://www.youtube.com/watch?v=bGjqDGF7xaM

Lá o rapaz ensina passo a passo e por vídeo o procedimento que você deve seguir. As diferenças do vídeo para o tutorial do blog foi explicado por mim.

Dê uma olhada e caso ainda assim não consiga, tento explicar melhor ou até mesmo ver o seu arquivo.

Flávio, segui seu passo a passo e funcionou perfeitamente. Inclusive gostaria de lhe agradecer e elogiar, pois sua explicação foi perfeita.
Porem Flávio, não querendo abusar, tem como eu fazer isso de forma que eu clicando em uma célula fique formatada de A1 a H1, por exemplo.

Desde já agradeço.

Forte abraço.

Companheiro, obrigado por seus elogios, fico feliz do blog estar sendo útil.

Quanto a sua questão, se for sempre um intervalo específico, sempre que clicar em uma célula tal intervalo terá que mudar de cor, basta usar técnicas de formatação dentro da propriedade "Workbook_SheetSelectionChange()".

Mas se o intervalo for, por exemplo, você clicou em A1 e quer que até H1 fique com a cor diferente das outras células, a propriedade "Workbook_SheetSelectionChange()" também resolve esse problema. Estude sobre ela e suas funcionalidades. Caso não atenda sua necessidade ou você não consiga. Pode pedir uma explicação mais que garanto que darei e tentarei ao máximo ajudar na solução do seu problema.

obrigado pela visita.

Boa noite Flávio.

Sem querer exigir de mais, tem como você exemplificar como eu faria com esta propriedade "Workbook_SheetSelectionChange()".
Gosto muito de Excel e VBA, mas ainda não tive a oportunidade de me aprofundar. Sou do tipo futuca e aprende.kkkkk

Desde de já lhe agraço.

Forte abraço.

Luiz, para facilitar pra você e pra mim, me passe seu email por aqui que nos falaremos melhor. Assim que ler seu post eu apago o email que você me enviar, para não dar brechas a engraçadinhos.

Aguardo seu e-mail. Abraços

Luiz, email copiado e já lhe mandei um email. Abraços.

muito boa sua dica mas deu um probleminha tudo q eu faço nao posso desfazer usando o CTRL+Z, tem outra dica q faça a mesma coisa mas nao de esse probleminha? topatudo@gmail.com, de ja agradeço.

Companheiro, infelizmente não tem. Afinal, o macete dessa dica consiste exatamente em quando você muda a posição da célula ou faz uma ação.

Recomendo usar apenas essa dica para questões de usuário final onde apenas dados são visualizados.

Qualquer dúvida, estamos à disposição.

uma outra coisa é que no exemplo do video ele mostra um destaque de uma linha e no seu é um destaque de uma celula entao tem umas modificaçoes poderia explicar mais detalhadamente o funcionamento de cada modificaçao? e se nao for pedir muito poderia explicar o porque de no video ele entra no worksheet e selectionchange para fazer o codigo, e depois ele clica no workbook e no sheetselection change como se mostrasse alguma coisa, de ja agradeço.

Companheiro, realmente o link para o vídeo correto estava errado e já foi corrigido.

Nessa postagem http://teclati.blogspot.com/2010/12/destacar-linha-de-celula-selecionada.html

é que eu mostro como colorir a linha da célula selecionada. Quanto a questão da explicação detalhada, fica difícil por comentário. Recomendo que se voce realmente queira essa explicação, me envie um email que falamos melhor.

Obrigado pela observação. Abraços

Ola, Muito boa essa formatação, funcionou direitinho!!!

Valeu...

De nada. Visite-nos sempre! Abraços

Olá Flávio

Funcionou muito bem, obrigado.

É possível que ao clicar numa determinada célula outras duas também assumam a cor ?

Grato

Manga

Olá Flávio

Como exemplo, ao clicar na célula que contém o nº 5, a mesma muda de cor e também "Pedro e "2-jan-12" e assim por diante...

A B C D
1 JOÃO PEDRO CARLOS
2 1-jan-00 1 2 3
3 2-jan-00 4 5 6
4 3-jan-00 7 8 9
5 4-jan-00 10 11 12
6 5-jan-00 13 14 15

Grato

Manga

Então Manga, aparentemente, sua solução é um tanto complexa. Por isso, fica um pouco dificil ajudar você apenas pelos comentários.

Peço que por favor você me adicione em alguma rede social ou me mande um email. Garanto que ajudarei você da melhor forma.

Lembrando que os contatos de todos os colaboradores ficam lá no topo do site, em "Colaboradores Tecla TI".

Aguardo contato.

Boa tarde Flavio!
Eu utilizei sua dica em uma planilha e deu certo. Só que em algumas que tento não acontece nada. Eu repeti o processo várias vezes, mas o resultado é sempre o mesmo. O que poderia estar acontecendo para impedir essa formatação?! Eu fiz o teste utilizando o Office 2007 e 2010.
Obrigado.

Jiba

olá amigo, deu certo, mas como faço para que toda a linha fique com a formatação que eu quero? com apenas a célula eu consegui...

Boa tarde amigo!
a muito tempo busquei alguma informação equivalente a esta e nunca encontrei propriamente, hoje em questões de minutos consegui colocar em prática seguindo suas dicas.

Cara você está de parabéns!
Muito obrigado e e felicidades sempre!
Dan Carolino San

Dan, muito obrigado pelos elogios! A ideia do site é realmente essa: ajudar sempre.

Flávio,
Segui os passos que você ensina e deu certo na Planilha Ativa. Como fazer para Destacar Células nas outras Planilhas da mesma Pasta de Trabalho????

Bom dia Flávio, muito prático seu exemplo, funcionou perfeitamente, o único problema é que a função desfazer fica inutilizada. Mário

Consegui aplicar a fórmula e é quase o que eu precisava.
Porém, o meu interesse é destacar a célula em uma apresentação em telão.
Por isso, minha intenção era que a formatação de cor preenchesse toda a linha e toda a coluna da célula (formato de cruz).

Aguardando resposta.

Att,
Thales

Não deu certo, uso 2007, ele acusa um erro relacionado a macros,

Funcionou corretamente como descrito...
Mas será que tem como destacar toda a linha selecionada?
por exemplo: Eu clico em uma célula e o excel formata toda a linha.

Parabéns Flávio! Muito bom o seu ensino, fiz e deu certo, só não sei como fazer para ativar nas outras planilhas da mesma pasta de trabalho, se você tiver condições de informar, será ótimo; Mas de qualquer forma, Obrigado,
Fredi

Olá Flávio, saberia dizer como faço para que a célula ativa fique destacaca (cor de fundo amarela, por exemplo) no LibreOffice Calc?

Postar um comentário