Tiempo de espera en una Macro

Soy novato en el tema de macros, pero ahí voy aprendiendo; les pido de su gran colaboración con lo siguiente:
Abrir un archivo en la WEB donde se encuentra el histórico del año 2012 del precio del dolar, buscar una fecha que le de y copiar el valor del dolar en una celda determinada (adjunto código que tengo)
FECHA3 = InputBox("Por favor ingrese la fecha en el formato AAAA-MM-DD ", "INGRESAR INFORMACIÓN")
Range("A1").Formula = FECHA3
Workbooks.Open Filename:="http://www.superfinanciera.gov.co/Cifras/informaci%C3%B3n/diarios/tcrm/historia.xls"
ActiveWindow.ActivateNext
Range("B1").Select
Selection.Copy
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Range("C2").Select
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-1],[historia.xls]TCRM!C1:C3,3,0)"
Range("B2").Select
ActiveCell.FormulaR1C1 = ActiveCell.Text
ActiveCell.FormulaR1C1 = ActiveCell.Text
Range("C2").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveWindow. ActivateNext
ActiveWindow. Close
Siguiendo el código paso a paso lo que necesito lo trae, pero al ejecutar la macro no le da tiempo de actualizar, como si necesitara un tiempo de ciclo para abrir el archivo en la web y luego realizar la búsqueda.
Intenté con : Application. Wait Time + TimeSerial(0, 0, 5) y con Application. Wait Now + TimeValue("00:00:05"), pero lo que hace es detener la operación, y lo que necesito es que haga una pausa, pero que siga trabando el excel, o si hay otra manera de hacer lo que necesito...

1 Respuesta

Respuesta
1

Se me ocurre lo siguiente:

archivo = ""
Workbooks.Open Filename:=http://www.superfinanciera.gov.co/Cifras/informaci%C3%B3n/diarios/tcrm/historia.xls
Do While archivo = ""
archivo = ActiveWorkbook.Name
If archivo <> "" Then
MsgBox ("ya llegó el archivo, continuar ")
Else
MsgBox ("nop")
End If
Loop

O en su defecto, preguntar si archivo = "historia.xls"

Saludos. Dam

Gracias por su oportuna respuesta, pero no me funciona, porque al usar Workbooks.Open , exige las comillas (" ")...habrá otra opción?

Perdón, la instrucción debe ser la misma:

Filename:="http://www.superfinanciera.gov.co/Cifras/información/diarios/tcrm/historia.xls"

Lo que pasó es que al pegar aquí, le quito las comillas, pero prueba otra vez.

Saludos. Dam

me sale error 1004 - tiempo de ejecución.

Lo intenté de las dos alternativas que mencionas :(

Encontré esto y si funciona, en la parte de declaraciones escribe:

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Te debe quedar algo así

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub nombre()
FECHA3 = InputBox("Por favor ingrese la fecha en el formato AAAA-MM-DD ", "INGRESAR INFORMACIÓN")
Range("A1").Formula = FECHA3
Workbooks.Open Filename:="http://www.superfinanciera.gov.co/Cifras/informaci%C3%B3n/diarios/tcrm/historia.xls"
Sleep (10000) ' Pausa por 10 seconds
ActiveWindow. ActivateNext
Range("B1").Select
…..

saludos.dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas