Nesse post: Destacar Célula Ativa foi mostrado com destacar a célula ativa do Excel. Agora, vou mostrar como destacar a linha da célula ativa, determinando o intervalo que será destacado.
Primeiro passo, vá no editor VBA do Excel e dê duplo em "Esta pasta de Trabalho", que fica à esquerda do Monitor.
Primeiro passo, vá no editor VBA do Excel e dê duplo em "Esta pasta de Trabalho", que fica à esquerda do Monitor.
Feito isso, insira o seguinte código VBA lá:
Dim Linha As Long 'Variavel global
'Função que colore a linha da celula atualmente selecionada
Private Sub Workbook_Activate()
On Error Resume Next
Linha = ActiveCell.Row 'Variavel global recebe a o numero da linha atualmente selecionada
Range(Cells(Linha, 2), Cells(Linha, 7)).Interior.ColorIndex = 6 'Destaca linha
End Sub
'Função para limpar a linha antes de colorir a proxima selecao
Private Sub Workbook_Deactivate()
On Error Resume Next
Range(Cells(Linha, 2), Cells(Linha, 7)).Interior.ColorIndex = xlNone 'limpa a cor anterior
End Sub
'Chamada das respectivas funções toda vez que uma nova célula é selecionada
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call Workbook_Deactivate
Call Workbook_Activate
End Sub
Copie o código acima e insira no local anteriormente especificado.
Feito isso, toda vez que você selecionar uma nova célula na sua planilha, esta terá sua linha destacada das colunas B até G.
Caso você deseje alterar o intervalo das colunas que serão destacadas nas linhas, basta mudar os valores dentro de "Cells(linha,2)" e de "Cells(linha,7)". Por exemplo, se você deseja que fique selecionado de A até H sempre que uma célula for selecionada, basta mudar para "Cells(linha,1)" e "Cells(linha,8)".
Para mudar a cor de fundo de quando a linha é selecionada, basta mudar o valor que o "Range" está recebendo, ou seja, colocar outro valor no lugar do 6. Por exemplo, a cor vermelha é 3, então para ficar com a linha em vermelho, basta trocar o 6 por 3.
Dica rápida e prática. Segue o link da planilha com essa dica funcionando e com código livre para edição: Destaca Linha de Celula Ativa.xls
Como sempre: Bom divertimento!
Olá Flávio.
ResponderExcluirVenho parabeniza-lo por este trabalho. Este recurso funcionou perfeitamente.
Show de bola.
Forte abraço!!!
Mais uma vez luiz, obrigado pelos elogios.
ResponderExcluirPrecisando, o blog é todo seu!
Abraços
Olá Flávio,
ResponderExcluirRealmente, suas dicas são excelentes. Parabéns. Vc facilita a vida de muita gente.
Agora me diga, é possível que este comando não apague a cor que estava na linha, antes do comando colorir a linha? Ou que, se apagar, quando eu trocar de linha outro comando volte a cor original da linha.
Não sei se me fiz entender.
Um abraço,
Lima
Ficou um pouco estranho seu questionamento. Mas em suma, acho que você gostaria que as linhas que voce fosse clicando permanecessem com a cor? É isso?
ResponderExcluirSe for isso, basta você no lugar da linha de comando:
Call Workbook_Deactivate
Substituir ela por:
'Call Workbook_Deactivate
Imagino que isso resolverá, caso seja essa sua dúvida.
E muito obrigado pelos elogios!
Como fazer para que a função funcione em apenas uma das planilhas da pasta de trabalho
ResponderExcluirBasta você colocar um condicional, por exemplo:
ResponderExcluirIF activesheet.name <> "[nome da sua planilha]" THEN
end sub
END IF
O código acima faz com que se a sua planilha não for a que você quer que funcione a formatação, ele não faz.
Caso você não consiga aplicar, em Colaboradores, no topo do site, tem meus contatos. Basta me adicionar e tentarei ajudar você de forma mais clara.
Olá Alguem pode me ajudar?
ResponderExcluirnão funcionou pra mim..
Eu preciso que funcione apenas em determinada planilha, porém não sei onde acrescentar a função:
IF activesheet.name <> "[nome da sua planilha]" THEN
end sub
END IF
obrigado
Companheiro, todo esse código que está na postagem deve ser colocado no editor VBA do Excel.
ResponderExcluirTal editor pode ser acessado através da tecla de atalho ALT+F11
Olá Flavio !!!
ResponderExcluirmuito bacana esse comando era relamente o que eu precisava ....
porém ... quando seleciono a linha ela apaga a cor anterior da linha, não gostaria que isso acontecesse ... como faço ??
grato
Companheiro, nesse caso basta você pegar o rgb da cor anterior e quando alternar de uma célula para outra pedir para ele pintar a que você tava antes com a cor que você deseja.
ResponderExcluirDessa forma sempre vai parecer que ele só tá marcando a atualmente selecionada.
Ou seja, nessa parte do código:
Range(Cells(Linha, 2), Cells(Linha, 7)).Interior.ColorIndex = xlNone 'limpa a cor
voce substitui xlNone por RGB(255,0,0) por exemplo se você quisesse que sempre ficasse em vermelho sua célula.
O meu questionamento seria sobre a seleção.
ResponderExcluirGostaria de realçar a linha selecionada, porém após a seleção gostaria que a mesma voltasse a ter a cor anterior a seleção.
Tenho um problema parecido que não descubro solução.
ResponderExcluirTenho uma planilha com 260 linhas, sobre cada linha já existe um VBA que pega os dados das colunas e efetua o cálculo. Eu gostaria de selecionar e mandar calcular apenas as linhas com erro e não todas as 260.
Como fazer que o VBA descubra quais linhas estão selecionadas ?
valeu cara ajudou muito
ResponderExcluirPrezado.
ResponderExcluirHá alguma forma de recuperar, em uma determinada célula, a última linha ocupada da planilha sem usar o VBA?
Obrigado.
Boa tarde pessoal!!!
ResponderExcluirComo faço para que fique destacada somente a célula que está selecionada e quando passar para qualquer outra célula essa passará a ficar em destaque e a anterior volta para a ficar sem cor?
Fala Flávio Santos, td bem, boa tarde!
ResponderExcluirPrimeiramente parabéns pelo trabalho, esta excelente;
Tô precisando de um auxilio, veja se pode me ajudar!
Preciso fazer esta mesmo processo, de uma forma que ao selecionar uma célula, seja destacada a LINHA e também a COLUNA de referencia desta célula, como devo proceder; Já tentei de varias maneiras e não consegui; Obrigado!
José Ronei
Caro José,
ResponderExcluirEntre em contato comigo através de algum dos meus emails disponíveis em "Colaboradores" no topo do site.
Prometo que tentarei ajudá-lo da melhor forma possível. Abs!
Eu entendi o que ele quer e não é o que você explicou.
ResponderExcluirEle quer o que eu também quero! =D
Voltar a cor original da linha antes de passar por ela.
Exemplo: A cor de certa célula era verde, daí colocamos esta função e ao passar por esta célula fica amarela, dai quando saí desta célula fica incolor! Ele quer que volte a cor verde inicial.
olá flavio. toda vez que eu abrir o excel, tenho que adicionar o codigo vba? queria pode deixar a ação salva. se tiver como fazer me ajude.
ResponderExcluirBoa tarde, agradeço e funcionou corretamente, mas, na minha situação pretendia mudar a cor da linha e da coluna! Como faço isso???
ResponderExcluirHelp...
Está quase perfeita, o único problema que achei é que se vc proteger a planilha em alguns celulas, não funciona
ResponderExcluirColoquei uma formatação condicional nas colunas que eu precisava que ficasse com a cor original... Funcionou perfeitamente :D
ResponderExcluirParece brincadeira, mas 3 ANOS depois ainda precisamos da sua ajuda. Parabéns tutorial. Muito fácil com suas explicações.
ResponderExcluirEu preciso que funcione apenas em determinada planilha, porém não sei onde acrescentar a função:
ResponderExcluirIF activesheet.name <> "[nome da sua planilha]" THEN
end sub
END IF
Tentei colocar no inicio, porém dá a mensagem "Erro de compilação: Inváldo fora de um procedimento
Muito obrigado mesmo!!! Ajuda demais com as milhares de linha que trabalho...e vc foi o ÚNICO que postou a solução!
ResponderExcluirVlw
Best Regards
Muito bom.... ótima solução...
ResponderExcluirSaberia fazer as linhas voltarem para a cor anterior?
Ex:. A linha esta verde, quando destacamos com o jeito que vc fez, ela se torna amarela e ao mudar novamente ela fica sem cor. Como voltar para a cor anterior (no caso do exemplo, verde)?
Obrigado!!
Flávio parabéns por nos ajudar. Foi como eu esperava. Agora a minha pergunta é se tem como salvar essa macro em vba para usar toda vez que abrir o excel?
ResponderExcluirMuito bom! Valeu pela dica!
ResponderExcluirAlguém sabe dizer se já existe uma alternativa para que não seja alterada a cor da célula após saída da seleção? Somente a função de destacar a célula selecionada sem alterar as cores iniciais. Obrigada
ResponderExcluirEu preciso que funcione apenas em determinada planilha, porém não sei onde acrescentar a função:
ResponderExcluirIF activesheet.name <> "[nome da sua planilha]" THEN
end sub
END IF
Tentei colocar no inicio, porém dá a mensagem "Erro de compilação: Inváldo fora de um procedimento
Alem disso como faço para o vba rodar em uma planilha bloqueada ?
Parabéns! Gostei desse VBA. Funcionou perfeitamente.
ResponderExcluirAndré Zani
Parabéns mano, vc foi o unico q resolveu meu problema
ResponderExcluirmuito bom! Mas como faço para aplicar apenas em uma das abas?
ResponderExcluirPara manter a formatação anterior é só usar formatação condicional para as celulas que vc quer manter a cor
ResponderExcluirMuito, muito,muito abrigado!!!
ResponderExcluirBoa tarde, coloquei e rodou numa boa, porém no mesmo arquivo tenho mais umas 40 pastas e quando clico em um célula de outra pasta acaba mudando as cores das outras planilhas, como faço para rodas numa planilha específica?
ResponderExcluirBoa tarde, para quem quer que funcione em uma planilha específica, o código fica assim:
ResponderExcluir'Função que colore a linha da celula atualmente selecionada
Private Sub Workbook_Activate()
On Error Resume Next
If ActiveSheet.Name = "CUSTOS" Then
Linha = ActiveCell.Row 'Variavel global recebe a o numero da linha atualmente selecionada
Range(Cells(Linha, 1), Cells(Linha, 25)).Interior.ColorIndex = 6 'Destaca linha
End If
End Sub
'Função para limpar a linha antes de colorir a proxima selecao
Private Sub Workbook_Deactivate()
On Error Resume Next
If ActiveSheet.Name = "CUSTOS" Then
Range(Cells(Linha, 1), Cells(Linha, 25)).Interior.ColorIndex = xlNone 'limpa a cor anterior
End If
End Sub
'Chamada das respectivas funções toda vez que uma nova célula é selecionada
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Call Workbook_Deactivate
Call Workbook_Activate
End Sub
Substitua a palavra "CUSTOS" pelo nome da planilha na qual você quer que o código funcione.
No meu caso, a planilha se chama CUSTOS.
Muito bom tutorial, me ajudou bastante.
Grato
ResponderExcluirEuler
Muito boa a dica. Parabéns ao Flávio. Alguém sabe como coloco nesse código do flávio para que as linhas dos títulos (tipo da linha 1 até a 8) não mude quando clicar nelas. Obrigado
ResponderExcluirEste comentário foi removido pelo autor.
ExcluirCara, fiz assim.. coloque uma If dentro de cada Sub
ResponderExcluirDim Linha As Long 'Variavel global
'Função que colore a linha da celula atualmente selecionada
Private Sub Workbook_Activate()
On Error Resume Next
Linha = ActiveCell.Row 'Variavel global recebe a o numero da linha atualmente selecionada
If Linha > 22 Then
Range(Cells(Linha, 2), Cells(Linha, 3)).Interior.ColorIndex = 5 'Destaca linha
End If
End Sub
Este comentário foi removido pelo autor.
ResponderExcluirParabéns, muito obrigado pela dica. Excepcional.
ResponderExcluirBoa tarde,
ResponderExcluirEu conseguiria fazer de alguma forma que por exemplo só irá colorir caso eu selecione alguma célula da coluna M por exemplo caso contrário não colore a linha
Funcionou perfeitamente.
ResponderExcluirShow Flavio!!!
ResponderExcluirSua dicas nos facilitam o nosso dia-a-dia.
Só troquei a cor da linha, mas tá show.
Gde abraço!!
Lauro Junior
Boa tarde caro Flavio!
ResponderExcluirObrigado pelo caminho aberto para novos formatos.
Não satisfeito com essa maravilhosa dica de colorir e descolorir a linha seleciona, trouxe-me transtornos, uma vez que haviam células com cores fortes para alertas, e quando passava por essa linha, a referida celular perdia sua padronização anterior.
Como anteriormente comentei que abristes as portas, alterei para fonte em negrito com tamanho maior e até contorno da linha.
Show.
Mais uma vez...
Obrigado pelas dicas.
Gde Abraço!
Lauro Junior
Top d+!!!
ResponderExcluirUso a formatação condicional para colorir as celular ímpares (para facilitar a visualização). Assim a célula que está colorida o comando acima não estão funcionando. Como corrijo isso?
O QUE EU PRETENDIA ERA QUA LINHA FICASSE DESTACADA APENAS ENQUANTO O CURSOR ESTÁ NUMA CÉLULA LIVRE POIS NESTA LINHA DA GRELHA EXISTEM COM CÁLCULOS PROTEGIDAS E COM CORRES DIFERENTES ERA NECESSÁRIO QUE QUANDO SAÍSSE DESTA LINHA TUDO FICASSE COMO ESTAVA ANTERIOR OU SE JÁ COMO DESTACAR UMA LINHA CLICANDO NO NUMERO DE LINHA NUMA GRELHA NÃO PROTEGIDA
ResponderExcluirDESCULPEM MAS SERÁ POSSÍVEL FAZER COM QUE NÃO CORRA SOMENTE NUMA DETERMINADA FOLHA
ResponderExcluir