Problema con esta macro
Amigo experto de nuevo yo otra vez Tengo la siguiente macro la cual me recorre la columna E desde la fila 5 hasta donde halla dato y me copara la fecha guardada en esta columnaE con la fea(date) del sistema menos quince días ya que esto es para que me genere un mensaje de alerta cuando falten 15 días para vencerse la licencia de cada Expendedor(Cliente) y que a la ves me coloque la celda donde se cumpla esta condición en amarillo, en el final del código mando a ejecutar esta macro que tengo en un modulo cada cuatro horas,
ok
hasta aquí esto funciona muy bien
El problema que se me esta presentando es que cuando la macro se ejecute y seleccione la celda que cumpla con la condición dada, coloque en amarillo toda esa fila desde la columna hasta la columnaK me emita el mensaje informativo y luego me cargue todos los datos de esa fila en un "ListBox1" el cual se haga visible en pantalla de manera que el usuario sepa con detalles a quien le queda pocos días para vencercele la licencia.
Como la macro se seguirá ejecutando cada 4 horas después de prender el ordenador al encontrase con otra celda que cumpla con la condición dada; y si esta en color amarillo la salte realice el mismo procedimiento y muestre solamente el mesaje informativo de la celda o celdas que encontró nuevamente y no me emita el mensaje informativo de todas las celdas que están en amarillo encontradas en ejecuciones pasadas y a la vez me muestre la caja de lista con todos los datos que estén en todas las filas marcadas en amariillo y así sucesivamente.
Este es el código
Option Explicit
Sub CTRLVENCIMIENTO()
Dim filas As Double
Dim fecha As Date
Dim i As Double
Sheets("Hoja4").Select
Range("E5").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
filas = ActiveCell.Row - 1
For i = 5 To filas
fecha = Cells(i, 5).Value
If fecha = Date - 15 Then
Cells(i, 5).Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
MsgBox ("Falttan Quince Dias Para Vencerse por lo Menos una Licencia, EXPENDEDOR"), vbDefaultButton4
End If
Next
Application.OnTime Now + TimeValue("4:00:00"), "CTRLVENCIMIENTO"
End Sub
ok
hasta aquí esto funciona muy bien
El problema que se me esta presentando es que cuando la macro se ejecute y seleccione la celda que cumpla con la condición dada, coloque en amarillo toda esa fila desde la columna hasta la columnaK me emita el mensaje informativo y luego me cargue todos los datos de esa fila en un "ListBox1" el cual se haga visible en pantalla de manera que el usuario sepa con detalles a quien le queda pocos días para vencercele la licencia.
Como la macro se seguirá ejecutando cada 4 horas después de prender el ordenador al encontrase con otra celda que cumpla con la condición dada; y si esta en color amarillo la salte realice el mismo procedimiento y muestre solamente el mesaje informativo de la celda o celdas que encontró nuevamente y no me emita el mensaje informativo de todas las celdas que están en amarillo encontradas en ejecuciones pasadas y a la vez me muestre la caja de lista con todos los datos que estén en todas las filas marcadas en amariillo y así sucesivamente.
Este es el código
Option Explicit
Sub CTRLVENCIMIENTO()
Dim filas As Double
Dim fecha As Date
Dim i As Double
Sheets("Hoja4").Select
Range("E5").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
filas = ActiveCell.Row - 1
For i = 5 To filas
fecha = Cells(i, 5).Value
If fecha = Date - 15 Then
Cells(i, 5).Select
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
MsgBox ("Falttan Quince Dias Para Vencerse por lo Menos una Licencia, EXPENDEDOR"), vbDefaultButton4
End If
Next
Application.OnTime Now + TimeValue("4:00:00"), "CTRLVENCIMIENTO"
End Sub
Respuesta de edwinhenao
1