Notifications
Clear all

Altera cor da linha selecionada

13 Posts
4 Usuários
0 Reactions
2,313 Visualizações
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Bom dia amigos!, eu encontrei vários códigos na internet que alteram a cor de funda das células da linha que eu selecionei, inclusive códigos que eu posso delimitar a linha e de coluna X até coluna Y, por exemplo.

O problema é que eu não estou conseguindo fazer nenhum destes códigos funcionar como eu quero n minha planilha.

Eu anexei um exemplo, trata-se de uma pasta de trabalho no formato XLSM (porque tenho outras macros), nesta pasta de trabalho eu tenho várias planilhas, e eu quero que o código funcione em duas delas, "Operações" e "Portfólio", só que tem áreas diferentes em cada uma.

Eu não consegui em nenhuma delas ¬¬, sou muito noob...

À saber, eu testei estas opções:

http://www.accelerated-ideas.com/pergun ... spage.aspx

https://social.technet.microsoft.com/Fo ... m=officept

http://www.clubedohardware.com.br/forum ... -no-excel/

https://forum.baboo.com.br/index.php?/t ... nha-ativa/

Aguardo, e desde já muito obrigado!

Sds. Pedro Júnior

 
Postado : 05/07/2017 6:33 am
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

Bom dia Pedro

Eu identifico a linha clicada e faço formatação condicional.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If (Not Intersect(Target, Range("A2:B1000")) Is Nothing) _
    And (Target.Cells.Count = 1) Then
      Me.Range("A1").Value = ActiveCell.Row
  End If
End Sub

E as vezes quero fazer algo rapido sem precisar fica formatado certinho eu uso esse, mas não sei limitar o Range para pintar

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count > 1 Then Exit Sub
    Application.ScreenUpdating = False
    Cells.Interior.ColorIndex = 0
    With Target
        .EntireRow.Interior.ColorIndex = 36
        .EntireColumn.Interior.ColorIndex = 36
    End With
    Application.ScreenUpdating = True
End Sub

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 05/07/2017 6:50 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Outro exemplo, para guia Operações:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Range("D7:AI1000").Interior.ColorIndex = xlNone

If Target.Row < 7 Then
Exit Sub
ElseIf Target.Column < 4 Then
Exit Sub
ElseIf Target.Column > 35 Then
Exit Sub
Else
lin = Target.Row
Range("D" & lin & ":AI" & lin).Interior.ColorIndex = 36
End If

End Sub

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/07/2017 7:02 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
Me metendo na dúvida dos outros k ... mas só para adiantar ...
.
Edson, aqui não funcionou como ele quer não!! ... Colei seu código, depois limitei a D7:Z1000 ... aí o que ele faz, colore a linha inteira, quando vc muda de linha ele colore novamente, mas mantém as cores em AA7:AI1000 - e assim sucessivamente!!!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 05/07/2017 7:44 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

Pedro,

Bom dia!

Segue minha sugestão.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 05/07/2017 7:44 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Todas as respostas são aplicáveis, muito obrigado, eu não estava conseguindo adaptar o código dos sites que eu encontrei...

A resposta que mais se encaixou foi esta ultima do wagner, mas ele ativa a sempre coluna "A", A1, A2, A3...

Se eu desejo clicar em B3, ele fica em A3, se eu desejo clicar em D9 ele fica em A9...

Como adaptar?

Outra dúvida, se eu nomear o intervalo posso usar o nome do intervalo no código VBA?

Sds. Pedro Júnior

 
Postado : 05/07/2017 10:43 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Olhando melhor, o código fo Edson ficou mais fácil para adaptar, e eu o fiz em três planilhas, ficando assim:

Operações

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("B7:AI131").Interior.ColorIndex = xlNone
    If Target.Row < 7 Then
        Exit Sub
    ElseIf Target.Column < 2 Then
        Exit Sub
    ElseIf Target.Column > 35 Then
        Exit Sub
    Else
        lin = Target.Row
        Range("B" & lin & ":AI" & lin).Interior.ColorIndex = 19
    End If
End Sub

Portfólio

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("D7:BD1000").Interior.ColorIndex = xlNone
    If Target.Row < 7 Then
        Exit Sub
    ElseIf Target.Column < 2 Then
        Exit Sub
    ElseIf Target.Column > 56 Then
        Exit Sub
    Else
        lin = Target.Row
        Range("D" & lin & ":BD" & lin).Interior.ColorIndex = 19
    End If
End Sub

Valor PL

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("B4:F29").Interior.ColorIndex = xlNone
    If Target.Row < 4 Then
        Exit Sub
    ElseIf Target.Column < 2 Then
        Exit Sub
    ElseIf Target.Column > 6 Then
        Exit Sub
    Else
        lin = Target.Row
        Range("B" & lin & ":F" & lin).Interior.ColorIndex = 19
    End If
End Sub

Esses três códigos funcionaram perfeitamente, até que eu fechei o arquivo e abri de novo, na segunda abertura não funcionou mais...

Alguém sabe me explicar porque?

Sds. Pedro Júnior

 
Postado : 05/07/2017 2:04 pm
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Percebi que se eu salvo a planilha sem senha os três códigos ficam funcionando, mas se eu salvo com senha para abrir o arquivo, as macros ficam desabilitadas.

Alguém sabe me dar uma dica?

Sds. Pedro Júnior

 
Postado : 06/07/2017 5:02 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
Eu tenho esse problema no 2007 do trabalho (se salvar um .xlsm com senha ele nem abre), no 2010 de casa, não!!
.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 06/07/2017 6:45 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

.
Me metendo na dúvida dos outros k ... mas só para adiantar ...
.
Edson, aqui não funcionou como ele quer não!! ... Colei seu código, depois limitei a D7:Z1000 ... aí o que ele faz, colore a linha inteira, quando vc muda de linha ele colore novamente, mas mantém as cores em AA7:AI1000 - e assim sucessivamente!!!
.

Copa, a primeira linha do código é justamente remover a cor de todo o intervalo:

Range("D7:AI1000").Interior.ColorIndex = xlNone

Copia sua adaptação aqui para analisarmos.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 06/07/2017 7:02 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Percebi que se eu salvo a planilha sem senha os três códigos ficam funcionando, mas se eu salvo com senha para abrir o arquivo, as macros ficam desabilitadas.

Alguém sabe me dar uma dica?

Pedro, verifique se consegue identificar na Central de Confiabilidade as Configurações de Macro:
Utilize a opção:
Dasabilitar todas as macros com notificação.

Ou seja, será advertido para habilitar ou não as macros quando abrir o arquivo.

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 06/07/2017 7:06 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

JSCOPA, no trabalho eu uso a versão de 2007. Tenho o 2013 em casa, mas só chego à noite, testo e retorno aqui.

Edson, eu fui na central de confiabilidade e testei diversas configurações, inclusive a que você sugeriu, mas se eu salvo com senha sempre ocorre este problema. Creio que seja algo relacionado à versão 2007 mesmo.

À noite relato se funcionou na versão 2013. Mas até lá, se alguém souber como resolver na versão 2007, por favor se sinta a vontade de falar XD

Por enquanto, obrigado a todos.

Sds. Pedro Júnior

 
Postado : 06/07/2017 10:50 am
(@pedro)
Posts: 362
Reputable Member
Topic starter
 

Desculpa a demora, bom dia!

É amigos, no Excel 2007, se colocar senha, a Planilha não executa as macro de colorir células.

Gostaria de saber como adaptar para, por exemplo, selecionei a linha e ela ficou colorida, aí segurei o CTRL e selecionei três ou 4 linhas diversas...

Como colorir todas elas?

À saber, resolvi meu problema com o código assim ó:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Range("B7:AI131").Interior.ColorIndex = xlNone
    If Target.Row < 7 Then
        Exit Sub
    ElseIf Target.Column < 2 Then
        Exit Sub
    ElseIf Target.Column > 35 Then
        Exit Sub
    Else
        Lin = Target.Row
        Range("B" & Lin & ":AI" & Lin).Interior.ColorIndex = 19
    End If
End Sub

E assim:

Sds. Pedro Júnior

 
Postado : 14/07/2017 7:44 am