¿Cómo puedo modificar el color de una Forma cuando se acerca una fecha de vencimineto? Excel VBA

Estoy creado un excel y una de las funciones que no logro programar es tener una Autoforma(en mi caso un circulo) que vaya cambiando de color dependiendo de si tiene alguna fecha próxima o no. (seria hacer como un semáforo).

Los datos que se deberían observar están en la hoja "DATOS" i por lo que respecta a la Autoforma, que debería cambiar de color, esta en la hoja "RESUMEN DE DATOS"

Simplemente me gustaría que las fechas que falten 1 semana para llegar a ese día (día actual incluido) debería cambiara el color del circulo a un PARPADEO ROJO i NARANJA. Las fechas falte por llegar menos de 30 días desde el día actual se deberían marcar en NARANJA y por ultimo las fechas superior a los 30 días de color VERDE.

¿Cómo puedo lograr hacer esto?

1 Respuesta

Respuesta
2

No queda claro dónde están y cuáles son las fechas a comparar.

Simplemente me gustaría que las fechas que falten 1 semana para llegar a ese día (día actual incluido)

Te dejo un ejemplo para que puedas adaptarlo a tu modelo. Aquí se compara la celda A1 de hoja Datos con la fecha actual. Y el objeto es una Elipse.

Sub colores()
'x Elsamatilde
'selecciona hoja y objeto
Sheets("RESUMEN DE DATOS").Select
ActiveSheet.Shapes.Range(Array("Oval 1")).Select
If Sheets("DATOS").[A1] - Date <= 7 Then
    Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 0)  'rojo=vbRed
ElseIf Sheets("DATOS").[A1] - Date <= 30 Then
    Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 255, 0)   'amarillo= vbYellow
Else
    Selection.ShapeRange.Fill.ForeColor.RGB = vbGreen
End If
'seleccionar alguna celda para quitar el foco al objeto
[A1].Select
End Sub

Tratándose de fechas, podrías llamar a la macro desde el evento Open.

No se que estaré haciendo mal la verdad. No corre el codigo correctamente. 
Voy a intentar ser mas preciso:

La hoja DATOS hay una tabla donde en la columna J3 es donde pueden haber o no fechas y se van introduciendo nuevos campos.

En la hoja RESUMEN DE DATOS hay un ovalo el qual me gustaria que cambiara de color dependiendo de las fechas mas proximas al dia de hoy referente a la hoja DATOS concretament de a partir de la celda J3.

La fecha de referencia siempre seria el dia en que se abra el excel, a partir de ahi hay 4 tramos de avisos.

  • Los que vencen en la misma semana- Parpadeo ROJO y NARANJA
  • Los que vencen la proxima semana - ROJO
  • Los que vencen en 30 dias - NARANJA
  • Los que vencen pasados los 30 dias - VERDE

Espero haberme explicado mejor, porque tenias razon que faltaban datos por mi parte.

Muchas gracias por tu respuesta :)

Ya te devolví el libro con la macro ajustada a tu modelo.

El primer problema es que tu objeto se llama Oval 2 y no 1 como en la macro de ejemplo. Y veo que la fecha puede estar en cualquier ubicación.

Comenta si quedó resuelto el tema para colocar aquí el código y así otros usuarios también puedan tomar la idea.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas