Ir ao conteúdo
  • Cadastre-se
Tiago Dalbosco Da Silva

Excel VBA Destacar linha e coluna selecionada sem alterar cores

Recommended Posts

Olá,

 

Venho por meio deste questionar a possibilidade de:

 - Ao selecionar uma "célula", destacar a linha toda e a coluna desta célula, encontrei muitos tutoriais com o código a seguir:

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    If IsEmpty(Target) Or Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    With ActiveCell
        ' Highlight the row and column that contain the active cell, within the current region
        Range(Cells(.Row, .CurrentRegion.Column), Cells(.Row, .CurrentRegion.Columns.Count + .CurrentRegion.Column - 1)).Interior.ColorIndex = 8
        Range(Cells(.CurrentRegion.Row, .Column), Cells(.CurrentRegion.Rows.Count + .CurrentRegion.Row - 1, .Column)).Interior.ColorIndex = 8
    End With
    Application.ScreenUpdating = True
End Sub

Porém o resultado é:

http://prntscr.com/jetild

 

Nesta tabela preciso manter as cores originais de referência:

http://prntscr.com/jetj9r

 

Apenas mostrar como referencia a linha e coluna que está selecionado.

 

É Possível?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se entendi bem o que precisa, de qualquer forma veja se é isso: 

 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    If IsEmpty(Target) Or Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    With ActiveCell
        ' Highlight the row and column that contain the active cell, within the current region
       Range(Cells(.Row, .CurrentRegion.Column), Cells(.Row, .CurrentRegion.Columns.Count + _
                   .CurrentRegion.Column - 1)).Interior.ColorIndex = ActiveSheet.Tab.ColorIndex
      
    End With
    Application.ScreenUpdating = True
End Sub

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos la,

Como a planilha é:

http://prntscr.com/jf9l6y

 

Ao aplicar o código que o Sr. @Basole citou acima ficou:

http://prntscr.com/jf9nm7

                          Note que ele zera todas as cores ao clicar.

 

o que busco é isso:

Manter as cores apenas assinalar a linha que está selecionada sem perder as cores originais do documento.

http://prntscr.com/jf9mhf

http://prntscr.com/jf9mtz

 

não precisa nem ser a coluna junto.

adicionado 2 minutos depois
38 minutos atrás, Basole disse:

Não sei se entendi bem o que precisa, de qualquer forma veja se é isso: 

 


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    ' Clear the color of all the cells
    Cells.Interior.ColorIndex = 0
    If IsEmpty(Target) Or Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    With ActiveCell
        ' Highlight the row and column that contain the active cell, within the current region
       Range(Cells(.Row, .CurrentRegion.Column), Cells(.Row, .CurrentRegion.Columns.Count + _
                   .CurrentRegion.Column - 1)).Interior.ColorIndex = ActiveSheet.Tab.ColorIndex
      
    End With
    Application.ScreenUpdating = True
End Sub

 

Alterei o código para cor 22 e entendi o que ele faz, mas n sei como manter as cores originais

 

http://prntscr.com/jf9pso

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só por curiosidade, copie esse código e colei no VBA porém não funcionou, como eu tenho que fazer?

Tem que criar uma macro qualquer e colar o código? Tem que criar botão?

Compartilhar este post


Link para o post
Compartilhar em outros sites
agora, AndersonSL disse:

Só por curiosidade, copie esse código e colei no VBA porém não funcionou, como eu tenho que fazer?

Tem que criar uma macro qualquer e colar o código? Tem que criar botão?

 

7 horas atrás, Tiago Dalbosco Da Silva disse:

Cells.Interior.ColorIndex = 0

tente esse (só alterei a linha = 0 para = 22)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou, tipo copiei o codigo e colei no vba certo? ai eu salvo a planilha e só? eu tenho que fazer algo mais?

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 minutos atrás, AndersonSL disse:

Não funcionou, tipo copiei o codigo e colei no vba certo? ai eu salvo a planilha e só? eu tenho que fazer algo mais?

Passo a partir do VBA aberto:

 

• Localize a Plan que vai colocar o código:

http://prntscr.com/jffs5q

• Dois clique nela:

http://prntscr.com/jffso0

• Cole o código e confere se está da cor que você quer (no meu caso 22):

http://prntscr.com/jfft69

• Como esta antes do código:

http://prntscr.com/jfftho

• Como ficou depois do código:

http://prntscr.com/jfftpu

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×