Revisar Macro Excel

A ver si le puedes echar un vistazo a cómo está la macro con el tema de la repetición.
Ahora parece que sí me funciona y ya creo cuándo me falla:
Lo hace, me falla, cuando tengo algún otro libro abierto o bien cuando tengo selesccionadas celdas que acabo de copiar, por ejemplo.
La tengo como un objeto en el libro, no como un módulo:
R = 0
TIEMPO_ESP_MAX = 179 'ESTABLECES EL TIEMPO DE ESPERA EN SEGUNDOS
Do While R = O
'
ComienzoSeg = Timer
FinSeg = ComienzoSeg + TIEMPO_ESP_MAX
Do While FinSeg > Timer
DoEvents
TChecq1 = Round(FinSeg - Timer, 0)
If TChecq1 <> TChecq2 Then
TChecq2 = TChecq1
End If
If ComienzoSeg > Timer Then
FinSeg = FinSeg - 24 * 60 * 60
End If
Loop
SEND
Loop
End Sub
Antes lo que tenía era un módulo que invocaba al modulo SEND pero no me iba:
Sub XX_REPETIR()
Application.OnTime Now + TimeValue("00:0:59"), "SEND"
End Sub
¿Cuál crees que es la mejor opción para repetir la macro SEND cada xx minutos / segundos?

1 respuesta

Respuesta
1

Con esta macro

Sub SEND_XX()
'
' SEND_XX Macro
' Macro grabada el 31/10/2012 por EMILIO
'
'
Sheets("datos").Select
Range("A13").Select
Selection.QueryTable.Refresh BackgroundQuery:=False
Sheets("HISTÓRICO").Select
ufila = Range("H" & Rows.Count).End(xlUp).Row + 1
If ufila < 6 Then
ufila = 6
End If
Sheets("HISTÓRICO").Select
isin = Range("A2")
Sheets("datos").Select
Range("A:B").Select
Set RangoObj = Selection.Find(What:=isin, _
After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Sheets("HISTÓRICO").Select
Range("A" & ufila) = Sheets("datos").Cells(RangoObj.Row, 2)
Range("B" & ufila) = Sheets("datos").Cells(RangoObj.Row, 3)
Range("C" & ufila) = Sheets("datos").Cells(RangoObj.Row, 4) / 100
Range("D" & ufila) = Sheets("datos").Cells(RangoObj.Row, 5) / 100
Range("E" & ufila) = Sheets("datos").Cells(RangoObj.Row, 6)
Range("F" & ufila) = Sheets("datos").Cells(RangoObj.Row, 7) / 100
Range("G" & ufila) = Sheets("datos").Cells(RangoObj.Row, 8)
Range("H" & ufila) = Sheets("datos").Range("A1")
Sheets("datos").Select
Columns("A:A").Select
Application.CutCopyMode = False
Range("A4").Select
Application.CutCopyMode = False
Range("A1:H114").Sort Key1:=Range("B3"), Order1:=xlAscending, Header:= _
xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
Sheets("HISTÓRICO").Select
Range("A5").Select
Application.OnTime Now + TimeSerial(0, 0, 59), "'" & ThisWorkbook.Name & "'!MACRO", , True
End Sub
La pregunta no admite más respuestas

Más respuestas relacionadas