Cerrar una macro al cerrar el formulario

Estoy en una macro donde tengo un bucle que está esperando a capturar un dato (por puerto RS232)... Pero cuando termino de trabajar cierro el formulario y al entrar de nuevo en el código de la macro me dice que la aplicación se está ejecutando (porque estaba dentro del bucle).

Entonces desde el Private Sub UserForm_Terminate() tendré que cerrar la subrutina que aún se está ejecutando, pero no se como hacerlo.

2 respuestas

Respuesta
-1

Calculo que cuando "descargas" el formulario, se terminan todas las rutinas que estén corriendo. ¿Al formulario lo cerrás o lo ocultas? Si no lo estás cerrando, agregá la instrucción

Unload Me (o Unload nombreFormulario)

Para asegurar que se descargue el formulario

¡Gracias! Pero no me solucionó el problema

Entonces deberías poner el código para ver cuales son todos los procesos que están en ejecución (y poder ver como pararlos)

Resumiendo... El código que se está ejecutando es:

Sub CapturaPESO()

111 While (UserForm1.NETComm2.InBufferCount < 18)
       dato = ""
       DoEvents
       Wend
dato = UserForm1.NETComm2.InputData

GoTo 111

End Sub

El bucle está esperando un dato, pero cierro el formulario y al entrar en el código me dice que se está ejecutando, y al darle pausa (interrupción) se sitúa en el DoEvents

Ok, te diría que lo que está en ejecución en ese momento es

dato = UserForm1.NETComm2.InputData

No sé que elemento es NETComm2, pero es probable que tenga alguna instrucción para que canceles este elemento o lo inicialices

Lo que está en ejecución es el bucle:

While (UserForm1.NETComm2.InBufferCount < 18)
dato = ""
DoEvents
Wend

El Netcoom es para capturar el dato por puerto serie y ya está inicializado y cerrado el puerto.

Tenés esta pregunta pendiente. Creo que Marcial completó lo que te estaba diciendo.

Respuesta
-1

Antes de descargar el formulario, deberías de cerrar el puerto Rs232 con la instrucción:

NETComm2.PortOpen = False

Debería de funcionarte.

Si te ha valido la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas