Alerta de Eventos por Fechas por Vencimientos

A los miembros de este Foro, quisiera pedir su ayuda con esta macro la cual permite buscar mediante la fecha las ocurrencias o eventos por vencer, vencidos e inclusive hoy mismo allá un evento la cual trabaja con la fecha del sistema (computadora), pero lo que ocurre es que esta macro hace la secuencia continuas es decir fila por fila (busca la fecha) y lo que quisiera es si se podría modificar para que busque las fechas pero en forma salteada es decir en la fila A2, A30 y A100, etc.

Adjunto macro:

Sub Auto_Open()
fila = 2
Do While Not IsEmpty(Cells(fila, "A"))
If Cells(fila, "A") = Date Then
x = MsgBox(Cells(fila, "B"), vbExclamation, "Hoy:")
End If
fila = fila + 1
Loop
fila = 2
Do While Not IsEmpty(Cells(fila, "A"))
If Cells(fila, "A") < Date Then
x = MsgBox(Cells(fila, "C"), vbCritical, "Vencidos:")
End If
fila = fila + 1
Loop
fila = 2
Do While Not IsEmpty(Cells(fila, "A"))
If Cells(fila, "A") > Date Then
x = MsgBox(Cells(fila, "C"), vbInformation, "A Vencer:")
End If
fila = fila + 1
Loop
End Sub
Sub VerHoy()
fila = 2
Do While Not IsEmpty(Cells(fila, "A"))
If Cells(fila, "A") = Date Then
x = MsgBox(Cells(fila, "C"), vbExclamation, "Hoy:")
End If
fila = fila + 1
Loop
End Sub
Sub VerVencidos()
fila = 2
Do While Not IsEmpty(Cells(fila, "A"))
If Cells(fila, "A") < Date Then
x = MsgBox(Cells(fila, "C"), vbCritical, "Vencidos:")
End If
fila = fila + 1
Loop

End Sub
Sub VerVencer()
fila = 2
Do While Not IsEmpty(Cells(fila, "A"))
If Cells(fila, "A") > Date Then
x = MsgBox(Cells(fila, "C"), vbInformation, "A Vencer:")
End If
fila = fila + 1
Loop
End Sub

Desde ya quedo con uds. Agradecido por su colaboración y paciencia.

1 Respuesta

Respuesta
1

Te dejo la macro para la primer subrutina. La idea es la misma para todas las demás. También para la del evento Auto-Open.

Debes completar la matriz con las celdas que deseas verificar.

Sub VerHoy()
'x Elsamatilde
'se arma una matriz con todas las celdas que necesitas revisar
rgoCeldas = Array("A2", "A30", "A100")
For i = 0 To 2        'hasta el total de elementos menos 1
    'se controla contenido de cada celda de la matriz
    If Range(rgoCeldas(i)) = Date Then
        x = MsgBox(Range("C" & Range(rgoCeldas(i)).Row), vbExclamation, "Hoy:")
    End If
Next i
End Sub

¡Gracias! Elsa Matilde

¿Respuesta 'buena'? ¿Lo sabías hacer mejor? Si es así deja tu método para que aprendamos todos... o considera mejorar tu valoración.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas