Paleta de cores em userform

Essa é para aqueles que já tem uma certa familiaridade com macros no Excel, e já conhecem o uso dos userforms. Aqui você vai ver como criar uma paleta de cores em userform, como capturar o código dessas cores e como utilizar esses códigos em outros locais nas suas planilhas.

Este é um post mais curto, acredito que o vídeo abaixo consiga explicar tudo de forma muito mais simples do que um texto poderia fazer. Assim, pega a pipoca aí e aproveite a aula ;), o código de macro exibido no vídeo está mais abaixo.

Na parte inferior tem também a planilha usada no vídeo, caso queira fazer o download.

Vídeo de como usar uma paleta de cores em userform

Coloque o vídeo em tela cheia para assistir normalmente

Saiba como altero as cores do meu código VBA clicando aqui

Código da macro

Siga as instruções do vídeo para saber como e onde inserir o código abaixo.

Function PickNewColor(Optional i_OldColor As Double = xlNone) As Double
Const BGColor As Long = 13160660 'Cor do background
Const ColorIndexLast As Long = 32 'Index da última cor padrão da paleta

Dim myOrgColor As Double 'Cor original
Dim myNewColor As Double 'Cor selecionada
Dim myRGB_R As Integer 'Valores RGB das cores que serão
Dim myRGB_G As Integer 'exibidas como
Dim myRGB_B As Integer 'cores "Atuais"

'Salva a cor original da paleta, caso não venhamos a mudá-la
myOrgColor = ActiveWorkbook.Colors(ColorIndexLast)

If i_OldColor = xlNone Then
'Pega os valores RGB do background
Color2RGB BGColor, myRGB_R, myRGB_G, myRGB_B
Else
'Pega os valores RGB de i_OldColor
Color2RGB i_OldColor, myRGB_R, myRGB_G, myRGB_B
End If

'Chama o seletor de cores
If Application.Dialogs(xlDialogEditColor).Show(ColorIndexLast, myRGB_R, myRGB_G, myRGB_B) = True Then
'Usuário apertou "OK", então o Excel automaticamente mudou a paleta e leu a nova cor selecionada
PickNewColor = ActiveWorkbook.Colors(ColorIndexLast)
'Reseta a paleta de cores para o valor original
ActiveWorkbook.Colors(ColorIndexLast) = myOrgColor
Else
'Usuário apertou em "Cancelar" a paleta de cores não mudou, retorna a cor anterior
PickNewColor = i_OldColor
End If
End Function

'Converte uma cor para valor em RGB
Sub Color2RGB(ByVal i_Color As Long, o_R As Integer, o_G As Integer, o_B As Integer)
o_R = i_Color Mod 256
i_Color = i_Color \ 256
o_G = i_Color Mod 256
i_Color = i_Color \ 256
o_B = i_Color Mod 256
End Sub

Planilha de exemplo

[sociallocker id=”30968″]

Download “Paleta de cores em userform” Função Excel - Paleta de cores em userform.xlsm – Baixado 287 vezes – 34 KB


Acompanhe o Função Excel
facebook-logo youtube-logo googleplus-logo twitter-logo

 

1 comentário em “Paleta de cores em userform”

Deixe um comentário ou uma dúvida