6 febrero, 2025

GENERAR PALETA DE COLORES CON VBA

Hola a todos:

El post de hoy es sobre la paleta de colores que usa Excel y como podemos listar esos colores utilizando VBA.

Para empezar, me gustaría decir que este tema está muy publicado en internet, en particular hay una macro que se encuentra en muchas webs sobre esta temática, ¡¡la misma macro!! lo que indica la nula creatividad de algunos autores a la hora de realizar los post y copiar el código directamente sin molestarse en cambiar ni una línea. Yo plantearé otra forma.

Os mostraré un procedimiento que listará todos los colores de esa paleta, del 1 al 56, el cero no lo tendremos en cuenta, dado que es idéntico al 2 (blanco).

Lo haremos en horizontal y cada 6 celdas, de forma que se verá como una paleta de colores y no una fila hacia abajo …

Lo haremos con este código:

Option Explicit
Sub PALETA_COLOR()
'Definimos variables
Dim CONT As Integer, COL As Integer
Dim i As Integer
'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
Cells(CONT, COL).Interior.ColorIndex = i
Cells(CONT, COL + 1).Value = "Color: " & i
CONT = CONT + 1
Else
Cells(CONT, COL).Interior.ColorIndex = i
Cells(CONT, COL + 1).Value = "Color: " & i
CONT = 1
COL = COL + 2
End If
Next i
End Sub

La ejecución del código se realiza con un botón de comando y también he añadido otra sencilla macro para limpiar el rango:

Sub LIMP()
Dim CELDA As Variant
'Limpiamos datos en rango
With ActiveSheet
For Each CELDA In .Range("A1:T6")
CELDA.Clear
Next CELDA
End With
End Sub

Este es el resultado de ejecutar nuestro código:

GENERAR PALETA DE COLORES CON VBA

Si quisiéramos seguir con el loop en la columna siguiente cada 15 celdas, por ejemplo, solo tendríamos que cambiar el número en esta línea de código:

If CONT < 5 Then

a

If CONT < 15 Then

Como véis es una macro muy sencilla y visual, y también podéis comprobar como se pueden exponer temas muy tratados en las webs especializadas sobre vba y excel y ser un poco original a la par de evitar el copiar códigos ajenos : ).

Descarga el archivo de ejemplo pulsando en: 

¿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

Comparte este post

3 comentarios en «GENERAR PALETA DE COLORES CON VBA»

  1. segu, excelente contenido. Sabrías como podría hacer que la paleta del color index me aparezca en una sola fila en vez de una columna.

    1. Se hace así:

      Sub PALETA_COLOR()
      'Definimos variables
      Dim CONT As Integer, COL As Integer
      Dim i As Integer
      CONT = 1
      COL = 1
      For i = 1 To 56
      Cells(CONT, COL).Interior.ColorIndex = i
      Cells(CONT, COL + 1).Value = "Color: " & i
      CONT = CONT + 1
      Next i
      End Sub

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies