OBTENER CÓDIGO RGB DE LA PALETA DE COLORES DE EXCEL CON VBA

Hola a todos:

En principio este fin de semana no tenía pensado escribir ningún post, he estado bastante liado con temas personales y realmente el viernes me encontraba agotado y con ganas de descansar.

Pero hoy estoy un poco más libre y tengo una hora suelta para escribir un post. Hoy os quiero mostrar una forma de obtener el código RGB de cualquier color que forme parte de la paleta de colores de Excel.

Hace unas semanas escribí una entrada sobre cómo GENERAR PALETA DE COLORES CON VBA  era un ejercicio muy sencillo que tenía como objetivo el poder generar la paleta de colores, y además el de modificar un loop para recorrer determinado rango de filas y columnas.

Hoy voy a tratar de completar aquel trabajo inicial con unas líneas de código que nos servirán para mostrar el RGB.

En rojo están los cambios fundamentales.

'Option Explicit
Sub PALETA_COLOR()
'Definimos variables
Dim CONT As Integer, COL As Integer, i As Integer, Control As String
Dim Rojo As String, Verde As String, Azul As String
'Inicializamos proceso
CONT = 1
COL = 1
'Creamos loop para colorear celda con cada color index
'Cada 6 celdas seguimos el loop en la columna siguiente
For i = 1 To 56
If CONT <= 5 Then
'Aplicamos color
Cells(CONT, COL).Interior.ColorIndex = i
'Obtenemos RGB
Control = WorksheetFunction.Rept("0", 6 - Len(Hex(Cells(CONT, COL).Interior.Color))) & Hex(Cells(CONT, COL).Interior.Color)
Rojo = Application.WorksheetFunction.Hex2Dec(Right(Control, 2))
Verde = Application.WorksheetFunction.Hex2Dec(Mid(Control, 3, 2))
Azul = Application.WorksheetFunction.Hex2Dec(Left(Control, 2))
Cells(CONT, COL).Value = Rojo & "|" & Verde & "|" & Azul
Cells(CONT, COL + 1).Value = "Color: " & i
CONT = CONT + 1
Else
'Aplicamos color
Cells(CONT, COL).Interior.ColorIndex = i
'Obtenemos RGB
Control = WorksheetFunction.Rept("0", 6 - Len(Hex(Cells(CONT, COL).Interior.Color))) & Hex(Cells(CONT, COL).Interior.Color)
Rojo = Application.WorksheetFunction.Hex2Dec(Right(Control, 2))
Verde = Application.WorksheetFunction.Hex2Dec(Mid(Control, 3, 2))
Azul = Application.WorksheetFunction.Hex2Dec(Left(Control, 2))
Cells(CONT, COL).Value = Rojo & "|" & Verde & "|" & Azul
Cells(CONT, COL + 1).Value = "Color: " & i
CONT = 1
COL = COL + 2
End If
Next i
End Sub

Lo que hacemos en cada una de las variables en las que almacenamos el número del color es:

En primer lugar pasar el número que se obtiene Interior.Color a la función Hex con la obtendremos una string representando su valor Hexagesimal. Y que debe contener 6 posiciones, con 0 hasta llegar al final.

WorksheetFunction.Rept("0", 6 - Len(Hex(Cells(CONT, COL).Interior.Color))) & Hex(Cells(CONT, COL).Interior.Color)

A continuación, por cada color extraemos parte del código que vamos a pasar a Dec con la función Hex2Dec

Ese valor será parte de los tres colores para componer nuestro código RGB.

El resultado es:

OBTENER CODIGO RGB DE LA PALETA DE COLORES DE EXCEL

Y eso es todo, espero que os sea de utilidad!!

Descarga el archivo de ejemplo pulsando en: OBTENER CÓDIGO RGB DE LA PALETA DE COLORES CON VBA

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

¿Te ha gustado?, Realiza un comentario.

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios .