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
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.
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
.
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
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
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
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
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
.
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
.
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
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
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
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