Notifications
Clear all

MACRO PARA MUDAR A COR CÉLULA AO PASSAR MOUSE

13 Posts
3 Usuários
0 Reactions
9,845 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Olá pessoal boa noite, preciso de exemplo ou da macro para mudar de cor as células onde vou passar o mouse, ou ao clicar na célula selecionada mudará de cor para destaca-lá.

segue o anexo.

silva_jmp

 
Postado : 17/04/2013 9:57 pm
(@berlan)
Posts: 13
Active Member
 

Testa essa macro, você coloca ela no código da planilha a ser executada a ação!

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

:]

 
Postado : 17/04/2013 10:22 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Berlan boa noite, obrigado por me responder, bom estamos no caminho certo, mas o que eu esperava seria quando clica-se na célula A2 que corresponde o item 1 todos os dados preenchidos nas células desta linha destaca-se com uma cora referencia será a linha com o intervalo preenchido e não a célula, mas quando seleciona-se outra linha na mesma condição a primeira retorna a sua cor de origem e a nova seleção se destaca, seria o mesmo efeito de quando passamos o mouse no formulário com listview.

silvajmp

 
Postado : 18/04/2013 10:09 pm
(@berlan)
Posts: 13
Active Member
 

Boa noite silvajmp,

Bom ai teremos que esperar a ajuda de algum expert em vba excel, ~pois tbm não sei como fazer isso.
Essa macro ai que postei, eu usava em uma planilha de agenda, para macar os dias que eu queria...

Mais creio que alguem vai conseguir te ajudar, e desculpa por eu não poder ajudar mais... :(

Berlan

 
Postado : 18/04/2013 10:31 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Tente esta, só ajuste a Coluna na instrução "Cells(Target.Row, 5))"

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim LinhaInicio As Range
Dim Linha As Range
Dim Linha2 As Long

Cells.Interior.ColorIndex = xlNone

Linha2 = Target.Row

Set LinhaInicio = Range("A" & Linha2, Target)

'Pinta da celula selecionada até a coluna 5
Set Linha = Range(Cells(Target.Row, 1), Cells(Target.Row, 5))
        
        With Linha
            .Interior.ColorIndex = 12
        End With

End Sub
 
Postado : 19/04/2013 5:58 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Mauro boa noite, obrigado por me ajudar, e isso mesmo preciso, mas se quiser ao invés da pintar linha conforme o código executa, gostaria que pinta-se em um intervalo como exemplo D5 seria o inicio do meu dados ate M20 seria o fim do meus dados.
Só para meu conhecimento você sabe se tem alguma maneira do mesmo objetivo em destacar a linha em um determinado intervalo com cor só passando o mouse, exemplo ao passar o mouse em determinado intervalo de dados automaticamente se destaca com alguma cor na linha do intervalo com dados.

desde já agradeço

silvajmp

 
Postado : 19/04/2013 10:18 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Para efetuar da forma que quer, levando em conta que iniciaremos o preenchimento da cor em D5, e, que, de D5 até M20 temos 16 linhas e 10 Colunas, alteramos a Coluna Inicial em Target.Row, 4 Coluna inicial D, e redimensionamos a seleção com a propriedade Resize conforme o que queremos, 160 celulas

Troque esta Linha :
Set Linha = Range(Cells(Target.Row, 1), Cells(Target.Row, 5))

por esta :
Set Linha = Cells(Target.Row, 4).Resize(16, 10)

Quanto ao evento do Mouse, não tenho certeza, uma vez que não temos este Evento nas propriedades, mas acho que já alguma coisa parecida, vou ver se encontro em meus arquivos e qualquer coisa respondo.

[]s

 
Postado : 21/04/2013 6:22 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
(@petplan)
Posts: 3
New Member
 

Show de Bola!.....Funcionou perfeitamente.......Mas teria como mudar a cor apenas em um intervalo de linhas??
Exemplo: Quando eu clicar nas linhas 1 ou 2....nada acontece.....Quando eu clicar nas linha 3, 4 ou 5 a cor muda.......A partir da linha 6 não muda mais

Eu também pude perceber que as cores existentes na planilha inteira apagam quando clicamos em uma linha mudando a sua cor. Tem como resolver isso??

No aguardo

 
Postado : 06/03/2014 6:44 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Cole a rotina abaixo na aba que pretende e veja se é isto oque quer.

Option Explicit

Public LastCell As Range
Public LastCellColor As Integer
Public sLinha

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    sLinha = Target.Row
    
    Select Case sLinha
    
        Case 3, 4, 5
        
            If Not LastCell Is Nothing Then
                LastCell.Interior.ColorIndex = LastCellColor
            End If
       
            Set LastCell = ActiveCell.Offset(0, 0).Resize(, 5)
    
            LastCellColor = LastCell.Interior.ColorIndex
        
            LastCell.Interior.ColorIndex = 6
    
        Case Else
        
    End Select
    
End Sub

[]s

 
Postado : 06/03/2014 8:41 pm
(@petplan)
Posts: 3
New Member
 

Mauro, boa noite,

Show de Bola!!......É isso mesmo........Só que agora quando andamos horizontalmente de coluna para coluna, as cores andam também, e na macro anterior, elas não andavam.
Sem abusar da sua boa vontade..........Teria como manter essa macro, mas em relação ao movimento horizontal, ficar igual a macro anterior?

No aguardo e mais uma vez obrigado!

Patriqui

 
Postado : 08/03/2014 3:49 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Se entendi corretamente, troque somente a rotina pela a abaixo.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    
    sLinha = Target.Row
    
    Select Case sLinha
    
        Case 3, 4, 5
        
            If Not LastCell Is Nothing Then
                LastCell.Interior.ColorIndex = LastCellColor
            End If
            
            'Resize refere-se a qde de colunas a selecionar a partir da Coluna A, neste caso 5 colunas
            'Set LastCell = ActiveCell.Offset(0, 0).Resize(, 5)
            Set LastCell = Cells(sLinha, 1).Offset(, 0).Resize(, 5)
    
            LastCellColor = LastCell.Interior.ColorIndex
        
            LastCell.Interior.ColorIndex = 6
    
        Case Else
        
    End Select
    
End Sub

[]s

 
Postado : 08/03/2014 5:37 pm
(@petplan)
Posts: 3
New Member
 

Boa tarde Mauro,

Cara......Tu é bom nesse negócio.........Parabéns!!...........Ficou perfeito........Muito obrigado.........

Um forte abraço,

Patriqui

 
Postado : 09/03/2014 1:10 pm