Ejecutar macro cada 60 Segundos

Tengo este código

Sub Actualizar()

f = 6
Sheets("DATOS SALIDAS").Select
Range("B6:E2000").ClearContents
Sheets("DATOS SALIDAS").Select
Range("A4").Select
valor = ActiveCell.Value
Set busca = Sheets("DATOS SALIDAS").Range("L6:O2000").Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
ubica = busca.Address
Do
For C = 1 To 4
Cells(f, C).Value = busca.Offset(0, C - 3).Value
Next
f = f + 1
Set busca = Sheets("DATOS SALIDAS").Range("L6:O2000").FindNext(busca)
Loop While Not busca Is Nothing And busca.Address <> ubica
End If
End Sub

Lo que necesito hacer es que se ejecute automáticamente cada 60 segundos, ¿no se si se pueda hacer eso?

1 respuesta

Respuesta
2

Cambia tu macro por estas, para que se activa cada 60 segundos (un minuto):

Sub Actualizar()
'Modificada.Por.DAM
f = 6
Sheets("DATOS SALIDAS").Select
Range("B6:E2000").ClearContents
Sheets("DATOS SALIDAS").Select
Range("A4").Select
valor = ActiveCell.Value
If valor = "salir" Then
    fin
    Exit Sub
End If
Set busca = Sheets("DATOS SALIDAS").Range("L6:O2000"). _
    Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
    ubica = busca.Address
    Do
        For C = 1 To 4
            Cells(f, C).Value = busca.Offset(0, C - 3).Value
        Next
        f = f + 1
        Set busca = Sheets("DATOS SALIDAS").Range("L6:O2000").FindNext(busca)
    Loop While Not busca Is Nothing And busca.Address <> ubica
End If
Application.OnTime Now + TimeValue("00:01:00"), "Actualizar"
End Sub
Sub fin()
'Por.DAM
On Error Resume Next
Application.OnTime Now + TimeValue("00:01:00"), "Actualizar", , False
End Sub

Para detener la macro, puse una salida, puedes escribir en la celda "A4" la palabra "salir" y la macro se detendrá, de lo contrario la macro se activará nuevamente aunque cierres el archivo.

Si quieres otra forma de salir de la macro, avísame y la pongo.

Prueba y me comentas
Saludos. DAM
Si es lo que necesitas.

me sale un mensaje que dice "No se puede encontrar la macro" y me pone la dirección donde se ubica el archivo...

OK Dam, ya quedo yo estaba haciendo algo mal, pero me surgió otra pregunta como hacer que por ejemplo si estoy en otra hoja al momento de que se active esta macro no me lleve a esa hoja, sino que me deje donde estoy.

Cambia la macro actualizar por esta

Sub Actualizar()
'Modificada.Por.DAM
Application.ScreenUpdating = False
hoja = ActiveSheet.Name
f = 6
Sheets("DATOS SALIDAS").Select
Range("B6:E2000").ClearContents
Sheets("DATOS SALIDAS").Select
Range("A4").Select
valor = ActiveCell.Value
If valor = "salir" Then
    fin
    Exit Sub
End If
Set busca = Sheets("DATOS SALIDAS").Range("L6:O2000"). _
    Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
    ubica = busca.Address
    Do
        For C = 1 To 4
            Cells(f, C).Value = busca.Offset(0, C - 3).Value
        Next
        f = f + 1
        Set busca = Sheets("DATOS SALIDAS").Range("L6:O2000").FindNext(busca)
    Loop While Not busca Is Nothing And busca.Address <> ubica
End If
Sheets(hoja).Select
Application.ScreenUpdating = True
Application.OnTime Now + TimeValue("00:01:00"), "Actualizar"
End Sub

Saludos.DAM
No olvides finalizar la pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas