Cambio de color de fondo dependiendo de un valor. VBA EXCEL

Cree un codigo hace unos dias para que me saliera una señal luminosa si el pedido aun no estaba entregado.
El problema viene que me ha dejado de funcionar o que en mi codigo original hay algun error y no se cual puede ser.

Por defecto coje el primer valor de este listbox llamado list_historial, en caso de que tenga fecha de recepcion el cuadro de arriba debe mostrarse en verde y en caso de que no tengo fecha de recepción debe aparece (como en la imagen) NO CONFIRMADA y el cuandro de color rojo.
Creo que el valor que me esta cogiendo en este caso es el valor de abajo.
Adjunto fotos de otros caso que al haber 1 solo registro el procedimiento lo hace correctamente pero en caso de haber más y el último no este entregado es cuando me da problemas.

El codigo que tengo que ejecuta esta parte es el siguiente:

If Me.list_historial.List(Me.list_historial.ListCount - 1, 5) = "NO CONFIRMADA" Then
diferencia_dies.Caption = DateDiff("d", FechaComanda, data)
Text_dies.Caption = "DIES" + vbCr + vbCr + "desde la" + vbCr + "COMANDA " 'dependiendo de si tiene fecha de entrega modifica el texto del label
senyal.BackColor = RGB(255, 0, 0)'Modifica el color del cuadro a ROJO
Else
diferencia_dies.Caption = DateDiff("d", FechaEntrega, data)
Text_dies.Caption = ""
Text_dies.Caption = "DIES" + vbCr + vbCr + "desde la" + vbCr + "RECEPCIÓ" 'dependiendo de si tiene fecha de entrega modifica el texto del label
senyal.BackColor = RGB(0, 128, 0)'Modifica el color del cuadro a VERDE
End If

Cual es mi error?  Que deberia cambiar para que si en la primera linea del listbox en la columna 6 si hay una fecha salga el cuadro VERDE y pone NO CORFIRMADA salga ROJO

1 Respuesta

Respuesta
1

Te dejo algunas instrucciones que debes recordar al trabajar con ListBox.

Ajusta el nro de columna a evaluar, comenzando desde 0 la primera.

1- El primer elemento de la lista:

             dato = ListBox1.List(0,5)   

2- El elemento seleccionado de la lista:

             dato= ListBox1.List(ListBox1.ListIndex,5) 

3- El último elemento de la lista:

             dato = ListBox1.List(ListBox1.ListCount - 1, 5)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas