Mudar a cor do batão ao cliclar  [Resolvido]

Visual Basic for Aplication e macros no Excel.
Regras do fórum
Sua dúvida foi respondida? Marque como RESOLVIDO em seus tópicos, usando o botão com marca verde. Imagem

Mudar a cor do batão ao cliclar

Mensagempor Mardr » Sex Jan 12, 2018 10:25 am

Olá aos considerados membros do Planilhando

Tentei, mas em vão, fazer com que ao clicar em um botão, contido na planilha, o mesmo assuma uma cor personalizada , por exemplo .backcolor = RGB (64,64,64) diferente dos demais botões que estão na cor: .backcolor= RGB(128,128,128).
Gostaria, portanto, de desenvolver um código no qual ao se clicar no botão, o mesmo alterasse e assumisse a cor personalizada e ao se clicar em outro botão, esse botão anteriormente clicado, voltasse a cor original.
Será que consegui explicar o que eu pretendo?
Lembrando que não gostaria de usar o efeito MouseMov... ok
Segue a planilha de exemplo
Grato,
Você não está autorizado a ver ou baixar esse anexo.
Mardr
Membro
Membro
 
Mensagens: 16
Registrado em: Dom Mar 05, 2017 11:49 am
Has thanked: 10 times
Have thanks: 0 time

{ SO_SELECT }

Re: Mudar a cor do batão ao cliclar

Mensagempor klarc28 » Sex Jan 12, 2018 10:56 am

Esta forma é extensa e inviável para grandes quantidades de botões:

Código: Selecionar todos
Private Sub Cbo_Atividades_Click()
If Cbo_Atividades.BackColor = RGB(128, 128, 128) Then
Cbo_Atividades.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)

End If
End Sub

Private Sub Cbo_Faltas_Click()
If Cbo_Faltas.BackColor = RGB(128, 128, 128) Then
Cbo_Faltas.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)

End If
End Sub

Private Sub Cbo_Grafico_Click()
If Cbo_Grafico.BackColor = RGB(128, 128, 128) Then
Cbo_Grafico.BackColor = RGB(64, 64, 64)

Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)

End If
End Sub

Private Sub Cbo_Lista_Click()
If Cbo_Lista.BackColor = RGB(128, 128, 128) Then
Cbo_Lista.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)

End If
End Sub

Private Sub Cbo_ListaChamada_Click()
If Cbo_ListaChamada.BackColor = RGB(128, 128, 128) Then
Cbo_ListaChamada.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)

End If
End Sub

Private Sub Cbo_Notas_Click()
If Cbo_Notas.BackColor = RGB(128, 128, 128) Then
Cbo_Notas.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)

End If
End Sub
Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.
klarc28
Membro
Membro
 
Mensagens: 469
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 6 times
Have thanks: 160 times

Re: Mudar a cor do batão ao cliclar

Mensagempor klarc28 » Sex Jan 12, 2018 11:02 am

Esta forma é mais resumida e vale para grandes quantidades de botões:

Código: Selecionar todos
Public nome As Integer

Sub Botao()

Dim Botao(6) As Object
Dim i, j As Integer
'
'
'
With Plan1
Set Botao(0) = .Cbo_Notas
Set Botao(1) = .Cbo_Faltas
Set Botao(2) = .Cbo_Atividades
Set Botao(3) = .Cbo_Lista
Set Botao(4) = .Cbo_ListaChamada
Set Botao(5) = .Cbo_Grafico

If Botao(nome).BackColor = RGB(64, 64, 64) Then
   Botao(nome).BackColor = RGB(128, 128, 128)
   Else
   Botao(nome).BackColor = RGB(64, 64, 64)
   End If

For i = 0 To 5

If nome <> i Then

If Botao(nome).BackColor = RGB(64, 64, 64) Then
   Botao(i).BackColor = RGB(128, 128, 128)
   Else
   Botao(i).BackColor = RGB(64, 64, 64)
   End If


End If

Next i
End With
End Sub




Código: Selecionar todos
Private Sub Cbo_Atividades_Click()
nome = 0
Call Botao

End Sub

Private Sub Cbo_Faltas_Click()
nome = 1

Call Botao
End Sub

Private Sub Cbo_Grafico_Click()
nome = 2

Call Botao
End Sub

Private Sub Cbo_Lista_Click()
nome = 3

Call Botao
End Sub

Private Sub Cbo_ListaChamada_Click()
nome = 4

Call Botao
End Sub

Private Sub Cbo_Notas_Click()
nome = 5

Call Botao
End Sub
Você não está autorizado a ver ou baixar esse anexo.
Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.

For this post the author klarc28 thanked:
Mardr (Sex Jan 12, 2018 10:13 pm)
klarc28
Membro
Membro
 
Mensagens: 469
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 6 times
Have thanks: 160 times

Re: Mudar a cor do batão ao cliclar

Mensagempor alexandrevba » Sex Jan 12, 2018 11:41 am

Boa tarde!!

Use nossa base
https://cse.google.com.br/cse?cx=partne ... cor+do+batão+ao+cliclar&sa=Pesquisar#gsc.tab=0&gsc.q=Mudar%20a%20cor%20do%20bat%C3%A3o%20ao%20cliclar%20vba

Att
Espero ter Ajudado.
Se a mensagem foi util Favor Clicar na mãozinha.
Quando necessário, lembre se de marcar o tópico como [RESOLVIDO].

For this post the author alexandrevba thanked:
Mardr (Sex Jan 12, 2018 10:13 pm)
Avatar do usuário
alexandrevba
Membro
Membro
 
Mensagens: 9273
Registrado em: Dom Jul 03, 2011 7:45 pm
Localização: Serra - ES
Has thanked: 0 time
Have thanks: 2654 times

Re: Mudar a cor do batão ao cliclar

Mensagempor Mardr » Sex Jan 12, 2018 12:00 pm

Olá Alexandre VBA
Apliquei as alteração, porém de fato, o único botão que realmente altera a cor ao clicar é o primeiro botão de "Cbo_Notas" os demais se altera de forma correta...
Segue a planilha com as modificações realizadas para sua análise
De antemão lhe agradeço pela sua colaboração

Grato,
Marcelo Adriano
Você não está autorizado a ver ou baixar esse anexo.
Mardr
Membro
Membro
 
Mensagens: 16
Registrado em: Dom Mar 05, 2017 11:49 am
Has thanked: 10 times
Have thanks: 0 time

Re: Mudar a cor do batão ao cliclar

Mensagempor klarc28 » Sex Jan 12, 2018 12:08 pm

A resposta está acima. Veja o anexo Alterar cores de botões 2
Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.

For this post the author klarc28 thanked:
Mardr (Sex Jan 12, 2018 10:15 pm)
klarc28
Membro
Membro
 
Mensagens: 469
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 6 times
Have thanks: 160 times

Re: Mudar a cor do batão ao cliclar

Mensagempor Mardr » Sex Jan 12, 2018 12:09 pm

Olá klarc28
Quando depuro o código no Editor VBE vejo o código sendo executado perfeitamente, porem , ao chamar a sub "Call Botão", na acontece...
Segue a planilha em questão..

De antemão lhe agradeço...

Att,
Marcelo Adriano
Você não está autorizado a ver ou baixar esse anexo.
Mardr
Membro
Membro
 
Mensagens: 16
Registrado em: Dom Mar 05, 2017 11:49 am
Has thanked: 10 times
Have thanks: 0 time

Re: Mudar a cor do batão ao cliclar

Mensagempor klarc28 » Sex Jan 12, 2018 12:12 pm

A resposta está acima. Veja o anexo Alterar cores de botões 2. Favor marcar como resolvido na parte que eu enviei.
Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.

For this post the author klarc28 thanked:
Mardr (Sex Jan 12, 2018 10:14 pm)
klarc28
Membro
Membro
 
Mensagens: 469
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 6 times
Have thanks: 160 times

Re: Mudar a cor do batão ao cliclar

Mensagempor klarc28 » Sex Jan 12, 2018 12:20 pm

Código: Selecionar todos
Private Sub Cbo_Atividades_Click()
If Cbo_Atividades.BackColor = RGB(128, 128, 128) Then
Cbo_Atividades.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)

Else
Cbo_Atividades.BackColor = RGB(128, 128, 128)

Cbo_Grafico.BackColor = RGB(64, 64, 64)
Cbo_Faltas.BackColor = RGB(64, 64, 64)
Cbo_Lista.BackColor = RGB(64, 64, 64)
Cbo_ListaChamada.BackColor = RGB(64, 64, 64)
Cbo_Notas.BackColor = RGB(64, 64, 64)

End If
End Sub

Private Sub Cbo_Faltas_Click()
If Cbo_Faltas.BackColor = RGB(128, 128, 128) Then
Cbo_Faltas.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)
Else
Cbo_Faltas.BackColor = RGB(128, 128, 128)

Cbo_Grafico.BackColor = RGB(64, 64, 64)
Cbo_Atividades.BackColor = RGB(64, 64, 64)
Cbo_Lista.BackColor = RGB(64, 64, 64)
Cbo_ListaChamada.BackColor = RGB(64, 64, 64)
Cbo_Notas.BackColor = RGB(64, 64, 64)
End If
End Sub

Private Sub Cbo_Grafico_Click()
If Cbo_Grafico.BackColor = RGB(128, 128, 128) Then
Cbo_Grafico.BackColor = RGB(64, 64, 64)

Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)
Else
Cbo_Grafico.BackColor = RGB(128, 128, 128)

Cbo_Atividades.BackColor = RGB(64, 64, 64)
Cbo_Faltas.BackColor = RGB(64, 64, 64)
Cbo_Lista.BackColor = RGB(64, 64, 64)
Cbo_ListaChamada.BackColor = RGB(64, 64, 64)
Cbo_Notas.BackColor = RGB(64, 64, 64)
End If
End Sub

Private Sub Cbo_Lista_Click()
If Cbo_Lista.BackColor = RGB(128, 128, 128) Then
Cbo_Lista.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)
Else
Cbo_Lista.BackColor = RGB(128, 128, 128)

Cbo_Grafico.BackColor = RGB(64, 64, 64)
Cbo_Faltas.BackColor = RGB(64, 64, 64)
Cbo_Atividades.BackColor = RGB(64, 64, 64)
Cbo_ListaChamada.BackColor = RGB(64, 64, 64)
Cbo_Notas.BackColor = RGB(64, 64, 64)
End If
End Sub

Private Sub Cbo_ListaChamada_Click()
If Cbo_ListaChamada.BackColor = RGB(128, 128, 128) Then
Cbo_ListaChamada.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)
Cbo_Notas.BackColor = RGB(128, 128, 128)

Else
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)

Cbo_Grafico.BackColor = RGB(64, 64, 64)
Cbo_Faltas.BackColor = RGB(64, 64, 64)
Cbo_Atividades.BackColor = RGB(64, 64, 64)
Cbo_Lista.BackColor = RGB(64, 64, 64)
Cbo_Notas.BackColor = RGB(64, 64, 64)
End If
End Sub

Private Sub Cbo_Notas_Click()
If Cbo_Notas.BackColor = RGB(128, 128, 128) Then
Cbo_Notas.BackColor = RGB(64, 64, 64)

Cbo_Grafico.BackColor = RGB(128, 128, 128)
Cbo_Faltas.BackColor = RGB(128, 128, 128)
Cbo_Atividades.BackColor = RGB(128, 128, 128)
Cbo_ListaChamada.BackColor = RGB(128, 128, 128)
Cbo_Lista.BackColor = RGB(128, 128, 128)

Else
Cbo_Notas.BackColor = RGB(128, 128, 128)

Cbo_Grafico.BackColor = RGB(64, 64, 64)
Cbo_Faltas.BackColor = RGB(64, 64, 64)
Cbo_Atividades.BackColor = RGB(64, 64, 64)
Cbo_ListaChamada.BackColor = RGB(64, 64, 64)
Cbo_Lista.BackColor = RGB(64, 64, 64)
End If
End Sub
Quando quiser agradecer, clique no joinha. Marque como resolvido na parte que resolveu sua dúvida.

For this post the author klarc28 thanked:
Mardr (Sex Jan 12, 2018 10:14 pm)
klarc28
Membro
Membro
 
Mensagens: 469
Registrado em: Sáb Dez 09, 2017 12:33 am
Has thanked: 6 times
Have thanks: 160 times

Re: Mudar a cor do batão ao cliclar

Mensagempor babdallas » Sex Jan 12, 2018 1:46 pm

Veja se ajuda.
Você não está autorizado a ver ou baixar esse anexo.
Espero que tenha ajudado.
Se esta ajuda resolveu seu problema, por favor marque o tópico como resolvido.
Se lhe fui útil, agradeço se me conceder seu like clicando na mãozinha.

For this post the author babdallas thanked:
Mardr (Sex Jan 12, 2018 10:14 pm)
babdallas
Membro
Membro
 
Mensagens: 74
Registrado em: Dom Nov 05, 2017 8:37 pm
Has thanked: 0 time
Have thanks: 42 times

Próximo

Voltar para VBA & Macros

Quem está online

Usuários navegando neste fórum: klarc28 e 3 visitantes