Macro que arroje status en base a una fecha dada

Tengo una tabla en la que aparecen distintas fechas en el formato “dd/mm/aaaa” en la columna H y me gustaría un macro que en base a esta fecha mostrara un status en la columna I. En caso de que la fecha fuera de 14-20 días adelante mostrara en el texto “PRIORIDAD” en la columna I, si la fecha fuera 21-27 días adelante mostrara el texto “URGENTE”, si la fecha fuera 28 días o más de esta fecha mostrara el texto “ESCALACIÓN”  y por último, en caso de que la fecha se encontrará de 1-13 días más de esta fecha o en la fecha muestre el texto “EN TIEMPO” en la columna I.

Por ejemplo:

La fecha de hoy es 23/09/2014, sería “EN TIEMPO” del 23/09/2014 al 06/09/2014, “PRIORIDAD” del 07/09/2014 al 13/09/2014, “URGENTE” del 14/09/2014 al 20/09/2014 y “ESCALACIÓN” del 21/09/2014 en adelante.

De antemano gracias.

2 respuestas

Respuesta
1

La fila inicial de las fechas es 2, si es otra fila cambia en la macro el 2 en esta línea por el número de fila inicial:

For i = 2 To Range("H" & Rows.Count).End(xlUp).Row

Te anexo la macro:

Sub estatus()
'Por.Dante Amor
    For i = 2 To Range("H" & Rows.Count).End(xlUp).Row
        Select Case Date - Cells(i, "H")
        Case Is < 14: Cells(i, "I") = "EN TIEMPO"
        Case 14 To 20: Cells(i, "I") = "PRIORIDAD"
        Case 21 To 27: Cells(i, "I") = "URGENTE"
        Case Is > 27: Cells(i, "I") = "ESCALACIÓN"
        End Select
    Next
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

¡Gracias! Excelente como siempre...

Resultados macro "Estatus"

Resultados macro "Prioridad"

Respuesta
1

Arantxa Blanco!

Antes de nada un comentario. ¿No será Exhalación la palabra en lugar de Escalación?

La macro sería esta

Sub Prioridad()
Dim i, dias, FilaFinal As Integer
FilaFinal = Range("H" & Rows.Count).End(xlUp).Row
For i = 2 To FilaFinal
    dias = Cells(i, "H") - Date
    If dias < 14 Then
        Cells(i, "I") = "EN TIEMPO"
    ElseIf dias < 21 Then
        Cells(i, "I") = "PRORIDAD"
    ElseIf dias < 28 Then
        Cells(i, "I") = "URGENTE"
    Else
        Cells(i, "I") = "ESCALACIÓN"
    End If
Next
End Sub

¡Muchas Gracias! 

Siento haberme equivocado, no interpreté bien el enunciado. Si quieres utilizar mi macro debes cambiar la linea

dias = Cells(i, "H") - Date

por esta otra

dias = Date - Cells(i, "H")

Perdón de nuevo Dante.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas