ÍTEMS EN LISTBOX CON COLORES. CONTROL LISTVIEW

Hola a todos:

Cuando cargamos los datos en un listbox puede ser que necesitemos que se coloreen o remarquen ciertos ítems de un color determinado según una condición. Esto no lo vamos a lograr con un listbox, sino con otro control de formulario muy parecido, el listview.

Este control lo podremos instalar pulsando con el botón derecho del ratón en el cuadro de herramientas de nuestro formulario.

ITEMS EN LISTBOX CON COLORES. CONTROL LISTVIEW

y a continuación pulsando en “Controles adicionales” y seleccionando Microsoft ListView Control, versión 6.0 

ITEMS EN LISTBOX CON COLORES. CONTROL LISTVIEW_1

Una vez instalado ya lo podemos programar y usar. En la imagen anterior véis que se trata de un control muy parecido al listbox.

Pues bien, vamos a hacer un ejercicio de ejemplo para que veais como podemos programar este control de formulario.

ITEMS EN LISTBOX CON COLORES. CONTROL LISTVIEW_2

Dada esta base de datos, vamos a cargar todos estos ítems en nuestro listview y colorear según las siguientes condiciones:

  • si la edad es <= “25”  entonces el color de la fuente será una variedad de azul: RGB(0, 112, 192)
  • si la edad es > “45” entonces el color de la fuente será rojo (vbRed).
  • si es otra edad, el color será el establecido por defecto.

Para realizar todo esto utilizaremos este código vinculado a un botón de ejecución dentro del mismo formulario:

Option Explicit
Private Sub CommandButton1_Click()
'Definimos variables
Dim fin As Long, final As Long
Dim i As Long, j As Long, c As Long
Dim Dato As Object
fin = Application.CountA(Range("A:A"))
final = Application.CountA(Range("1:1"))
With ListView1
'Limpiamos los items del listview
.ListItems.Clear
'seleccionamos toda la línea
.FullRowSelect = True
'indicamos vista reporte
.View = lvwReport
With .ColumnHeaders
'Limpiamos y creamos encabezados
.Clear
.Add Text:="ID", Width:=30
.Add Text:="NOMBRE COMPLETO", Width:=160
.Add Text:="SECCIÓN", Width:=120
.Add Text:="EDAD", Width:=30
.Add Text:="SEXO", Width:=60
.Add Text:="2º IDIOMA", Width:=60
.Add Text:="ESTUDIOS", Width:=160
End With
'Cargamos datos de la hoja
'Si el valor es menor o igual a 25 años marcamos con color RGB
For i = 2 To fin
If Cells(i, 4).Value <= "25" Then
Set Dato = .ListItems.Add(Text:=Cells(i, 1).Value)
Dato.ForeColor = RGB(0, 112, 192)
With Dato.ListSubItems
For c = 2 To final
.Add Text:=Cells(i, c).Value
Next c
For j = 1 To .Count
.Item(j).ForeColor = RGB(0, 112, 192)
Next j
End With
'Si el valor es mayor que 45 años marcamos con color rojo
ElseIf Cells(i, 4).Value > "45" Then
Set Dato = .ListItems.Add(Text:=Cells(i, 1).Value)
Dato.ForeColor = vbRed
With Dato.ListSubItems
For c = 2 To final
.Add Text:=Cells(i, c).Value
Next c
For j = 1 To .Count
.Item(j).ForeColor = vbRed
Next j
End With
'caso contrario, no coloreamos
Else
Set Dato = .ListItems.Add(Text:=Cells(i, 1).Value)
With Dato.ListSubItems
For c = 2 To final
.Add Text:=Cells(i, c).Value
Next c
End With
End If
Next i
End With
End Sub

El resultado será el siguiente:

ITEMS EN LISTBOX CON COLORES. CONTROL LISTVIEW_3

Como podéis observar, cuando cargamos los datos se aplican los criterios de nuestra condición.

Y esto es todo!.

Descarga el archivo de ejemplo pulsando en: ÍTEMS EN LISTBOX CON COLORES. CONTROL LISTVIEW

¿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

6 pensamientos en “ÍTEMS EN LISTBOX CON COLORES. CONTROL LISTVIEW

      • Instalé los Controles de la siguiente manera: Cuadro de Herramientas/Controles adicionales/Microsoft ListView Control 6.0/ Microsoft MonthView Control 6.0 (SP6) . Al dar Clic en Generar ListView/ aparece ERROR: No se encuentra el proyecto o la biblioteca y lo manda a: IvwReport

        Me gusta

        • Hola Emiro: Baja mi ejemplo y ejecútalo. Si te muestra el error que indicas, entra en las referencias (no en los Controles Adicionales) y verifica cual de los controles no tienes en tu equipo.

          Está claro que el error que te muestra se debe a que no tienes la biblioteca en tu equipo. Intenta descargar un complemento con dicho control, es lo único que te puedo recomendar.

          Ahora mismo estoy ejecutando esta macro en un equipo con Office 365 ProPlus a 64 bits. Saludos

          Me gusta

¿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 .