Cómo puedo ejecutar una instrucción, hasta que termine de procesar la anterior..

En un botón de un formulario tengo una serie de instrucciones que ejecuto. Pero una de ellas genera un PDF y lo graba en disco en una carpeta. En seguida de eso tengo la instrucción de enviar un correo electrónico con el PDF adjunto, pero cuando se ejecuta esa sentencia, todavía no se almacena en disco el PDF y por lo tanto falla. Necesito saber que ya terminó de guardar el PDF para ejecutar la siguiente instrucción o de alguna manera esperar unos segundos a que lo guarde. (Sin utilizar un mensaje msgbox).

1 respuesta

Respuesta
1

Quizá poniendo un "Retardo", inmediatamento después de darle la instrucción de generar el .pdf

No sé si te funcionará porque en la situación que tu describes exactamente no lo he probado.

Public Function EsperaUnPoco(NumSegundos As Variant)

Dim TiempoEspera As Variant, Inicio As Variant
On Error GoTo Err_EsperaUnpoco

TiempoEspera = NumSegundos
Inicio = Timer
Do While Timer < Inicio + TiempoEspera
DoEvents
Loop

Exit_EsperaUnpoco:
Exit Function
Err_EsperaUnpoco:
MsgBox Err.Number & " - " & Err.Description
Resume Exit_EsperaUnpoco
End Function

Y para llamarla, tal como te comento arriba sería:

Call EsperaUnPoco(s) >> Siendo "s" el Numero de Segundos.

Ya me contarás si te funciona.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas