Interrumpir la ejecución de un procedimient
Publicado por esthermatozoide (2 intervenciones) el 07/03/2011 14:26:55
Buenas,
Tengo un macro que "llama" a otras macros. Adjunto el código de una de ellas, el de la otra contiene las mismas instrucciones, pero trabaja con distintos rangos.
---------------------------------------------------------------------------------------------------
Sub Crear_Ficha_Nuevo_Cliente()
Instrucciones varias
ComprobarCondiciones
ComprobarDatosInternos
End Sub
--------------------------------------------------------------------------------------------------
Sub ComprobarCondiciones()
Sheets("Desplegables").Activate
' Comprobar que se ha rellenado el campo "Forma de Pago"
If Cells(130, 3) = 1 Then
UFFormadePago.Show
End If
' Comprobar que se ha rellenado el campo "Condiciones de Pago"
If Cells(131, 3) = 1 Then
UFCondicionesdePago.Show
End If
--------------------------------------------------------------------------------------------------
Como se puede ver, desde estas macros se llama a distintos UserForms o cuadros de diálogo cuando se dan ciertas circunstancias. Adjunto el código de uno de ellos, los demás contienen las mismas instrucciones, pero trabajan con distintos rangos.
-------------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
Load UFFormadePago
Sheets("Crear Ficha Nuevo Cliente").Select
ActiveWindow.ScrollRow = 44
UFFormadePago.Show
End Sub
------------------------------------------------------------------------------------------------------
Private Sub CBContinuar1_Click()
UFFormadePago.Hide
' Retomar la ejecución de la macro Crear_Ficha_Nuevo_Cliente, volviendo a ejecutar el procedimiento sub ComprobarCondiciones
ComprobarCondiciones
' Desactivar el cuadro de diálogo
Unload UFFormadePago
End Sub
-----------------------------------------------------------------------------------------------
Lo que busco es sencillo (al menos de explicar): simplemente quiero que cuando se cargue un UserForm se detenga la ejecución de todo código hasta que el usuario haga clic en el botón "Continuar".
He probado con Exit Sub, pero sólo me saca del procedimiento ComprobarCondiciones, con lo cual continúa con la "llamada" al otro procedimiento: ComprobarDatosInternos, y yo lo que necesito es que se detenga completamente. He pensado en la instrucción Wait, pero no me sirve porque es necesario que el usuario pueda ir al fichero excel, meter los datos que ha olvidado rellenar y hacer clic en Continuar.
¿Alguien puede ayudarme?
Mil gracias por adelantado. Esther-matozoide : )
Tengo un macro que "llama" a otras macros. Adjunto el código de una de ellas, el de la otra contiene las mismas instrucciones, pero trabaja con distintos rangos.
---------------------------------------------------------------------------------------------------
Sub Crear_Ficha_Nuevo_Cliente()
Instrucciones varias
ComprobarCondiciones
ComprobarDatosInternos
End Sub
--------------------------------------------------------------------------------------------------
Sub ComprobarCondiciones()
Sheets("Desplegables").Activate
' Comprobar que se ha rellenado el campo "Forma de Pago"
If Cells(130, 3) = 1 Then
UFFormadePago.Show
End If
' Comprobar que se ha rellenado el campo "Condiciones de Pago"
If Cells(131, 3) = 1 Then
UFCondicionesdePago.Show
End If
--------------------------------------------------------------------------------------------------
Como se puede ver, desde estas macros se llama a distintos UserForms o cuadros de diálogo cuando se dan ciertas circunstancias. Adjunto el código de uno de ellos, los demás contienen las mismas instrucciones, pero trabajan con distintos rangos.
-------------------------------------------------------------------------------------------------
Private Sub UserForm_Initialize()
Load UFFormadePago
Sheets("Crear Ficha Nuevo Cliente").Select
ActiveWindow.ScrollRow = 44
UFFormadePago.Show
End Sub
------------------------------------------------------------------------------------------------------
Private Sub CBContinuar1_Click()
UFFormadePago.Hide
' Retomar la ejecución de la macro Crear_Ficha_Nuevo_Cliente, volviendo a ejecutar el procedimiento sub ComprobarCondiciones
ComprobarCondiciones
' Desactivar el cuadro de diálogo
Unload UFFormadePago
End Sub
-----------------------------------------------------------------------------------------------
Lo que busco es sencillo (al menos de explicar): simplemente quiero que cuando se cargue un UserForm se detenga la ejecución de todo código hasta que el usuario haga clic en el botón "Continuar".
He probado con Exit Sub, pero sólo me saca del procedimiento ComprobarCondiciones, con lo cual continúa con la "llamada" al otro procedimiento: ComprobarDatosInternos, y yo lo que necesito es que se detenga completamente. He pensado en la instrucción Wait, pero no me sirve porque es necesario que el usuario pueda ir al fichero excel, meter los datos que ha olvidado rellenar y hacer clic en Continuar.
¿Alguien puede ayudarme?
Mil gracias por adelantado. Esther-matozoide : )
Valora esta pregunta
0