Notifications
Clear all

Mais de 1 Active Cell na mesma célula!

8 Posts
4 Usuários
0 Reactions
1,421 Visualizações
(@fafsleite)
Posts: 11
Active Member
Topic starter
 

Prezados,

Tenho o código abaixo, que faz parcialmente o que necessito:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address <> endereco Then
ActiveCell.Interior.ColorIndex = 10 'verde
If endereco <> "" Then
Range(endereco).Interior.ColorIndex = xlNone
End If
End If
endereco = ActiveCell.Address
End Sub

Esse código apenas faz com que eu consiga, ao clicar em uma célula, mudar para a cor verde.

Como poderia fazer, com a mesma célula colocasse outras cores ao selecioná-la novamente.

Ex.: Voltando para Branco e depois para azul, e depois para verde, e assim sucessivamente.

Clico uma vez (ex. célula A1), fica verde, clico em outra célula (Ex. célula A2), fica verde. Clica na célula que já está em verde (célula A1), fica azul, clico novamente, fica branco.

No aguardo de alguma solução.

Flávio Leite®.

 
Postado : 30/10/2015 2:39 pm
(@messiasmbm)
Posts: 223
Estimable Member
 

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Interior.Pattern = xlNone And ActiveCell.Interior.TintAndShade = 0 And ActiveCell.Interior.PatternTintAndShade = 0 Then 'verde
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 12611584
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Exit Sub
End If
If ActiveCell.Interior.Color = 12611584 Then 'azul
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 5287936
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Exit Sub
End If

If ActiveCell.Interior.Color = 5287936 Then 'branco
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Exit Sub
End If

End Sub

 
Postado : 30/10/2015 3:47 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 


Veja se atende ao que pretende:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address <> endereco Then
If ActiveCell.Interior.ColorIndex = xlNone Then
ActiveCell.Interior.ColorIndex = 10 'verde
ElseIf ActiveCell.Interior.ColorIndex = 10 Then
ActiveCell.Interior.ColorIndex = 5 'verde
ElseIf ActiveCell.Interior.ColorIndex = 5 Then
ActiveCell.Interior.ColorIndex = xlNone 'verde
End If
If endereco <> "" Then
Range(endereco).Interior.ColorIndex = xlNone
End If
End If
endereco = ActiveCell.Address
End Sub

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

 
Postado : 30/10/2015 3:49 pm
(@fafsleite)
Posts: 11
Active Member
Topic starter
 

Caro messiasmbm,

Obrigado pela resposta!

Me atendeu, quase que perfeitamente.
A única coisa que ainda não consigo é que para colocar uma outra cor, tenho que preencher uma outra célula.
Ex.: Se clico na célula A1, fica verde. Para ficar azul, tenho que clicar em outra célula e deixá-la verde também, para voltar na célula A1 para ficar Azul.

Tem alguma maneira, que se ao clicar na célula A1, fique verde. Clico novamente na mesma célula ela fique azul, e depois ao clicar na mesma célula, ela fique branca?

Mais uma vez, muito obrigado!

 
Postado : 30/10/2015 9:33 pm
(@fafsleite)
Posts: 11
Active Member
Topic starter
 

Caro Edson,

Muito obrigado pela sua resposta!

O código parece perfeito, mas aparentemente só funciona na célula A1.
Ao clicar nas outras células, A2, A3, etc, não funciona.

Será que ainda falta algo?

Desde já agradeço pelo seu auxílio.

Atenciosamente,
Flávio Leite®.

 
Postado : 30/10/2015 9:35 pm
(@fafsleite)
Posts: 11
Active Member
Topic starter
 

Prezado Edson,

Era algum erro na planilha.
Ao copiar a formatação para as outras células, tudo ficou correto.

O código ficou fantástico. Só mais uma dúvida.

Se eu clico na célula A1, deixa a célula em verde, para que fique em azul, preciso primeiro marcar uma outra célula, ex: A2, e voltar para a Célula A1 para ficar em Azul.
Tem mais algo no código que dê para fazer, para que se clicar na mesma célula, vá mudando?

Desde já agradeço mais uma vez!

Flávio Leite®.

 
Postado : 30/10/2015 9:43 pm
(@mprudencio)
Posts: 2749
Famed Member
 

Acho que neste caso não tem como pq o excel tem que entender que a celula perdeu o foco para receber novamente.

Para alterar a cor a celula tem que ser a celula ativa e ela ja estando ativa não tenho certeza mas nao tem como fazer funcionar.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 31/10/2015 7:38 am
(@fafsleite)
Posts: 11
Active Member
Topic starter
 

Prezado MPrudencio,

Imaginei que não dava pra fazer.

Nessa mesma planilha, coloquei uma fórmula em um Módulo para contar quantas cores são azuis, quantas são verdes e quantas são vazias.

Se coloco no módulo, ActiveSheet.Calculate, ele calcula normalmente, mas ao fechar a planilha e abrir novamente, não calcula mais.
O que pode ser?

Preciso colocar mais algo?

Fico no aguardo de solução, se possível.

 
Postado : 31/10/2015 2:36 pm