Macros especial

Hola gomzky, que tal, quisiera hacerte la siguiente consulta...
Necesito hacer una macro que cada cierto tiempo, digamos 5 segundos, realice un escaneo por distintas celdas de una misma columna y las compare con la hora del sistema, luego, cuando encuentre una coincidencia pinte una celda adyacente de color rojo. El escaneo se debe realizar de forma acumulativa, me explico, por ejemplo inicia en la F5, compara, pinta o no la celda G5 luego revisa F6 y lo mismo de forma secuencial. El problema es que la cantidad de datos en variable entonces debe escanear hasta encontrar una celda vacía, una cosa así.
Agradeceré un millón tu respuesta o bie los pasos a seguir para lograr el objetivo.
Y intente temporizar con
Application.OnTime Now + TimeValue("00:00:02"), "Workbook_Open" y me resulta, tambien pinte la celda con
        Range("C5") = Format(tiempo_llegada, "HH:MM")
        With Selection.Interior
            .ColorIndex = 45
            .Pattern = xlSolid
        End With
Pero el escaneo me complica.
Te doy las gracias por adelantado, hasta luego... Saludos

1 Respuesta

Respuesta
1
El escaneo se te complica porque en ningún momento finaliza el programa de escaneo y pasa el control al excel... esto se hace con el la instrucción "Do Event" para permitirle al programa retornar el control a Excel.-
También te recomiendo que le digas el rango de celdas a escanear, metiéndolo en una matriz bidimensional, con lo cual, no se "liará" y pasará del rango de celdas
Una sugerencia a tu programa, sería algo así: (la hago de cabeza... posiblemente deberás depurar los errores)
Timer = TimerValue("00:00:02")
   .....                               'Otras instrucciones que necesites
  Columa= Array("A";"B;"C";"D";"E"...)  'Define el rango de columnas a scanear
  Fila = Array(1,2,3,4,5,6,7,8,9,10...)
  Do Event         'Retorna el control al Excel mientras el tiempo no caduque
On timer gosub Rutina   'Esto solo se hará cuando finalice el contador "Timer"
Celda =Array(Columna, Fila) 'Empieza el scaneo en la Columna,Fila que le toque
  .....  Instrucciones para pintar la casilla.
Return   ' Para volver al bucle que inicia el contador "Timer"
Exit Sub '->Cuando termine la ejecución de la rutina...
_____________________________________________
Espero que esto te ayude un poquito y te sirva como clave para encontrar los fallos en tu programa...
Gracias por tu ayuda, no tengo mucha experiencia en excel y menos visual basic pero siempre me las ingenio y los datos que me has dado me servirán para llegar a destino
Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas