salir de una macro con otra macro

15/10/2006 - 01:32 por Ivan | Informe spam
hola a todos de nuevo (viendo el hilo ¿anterior? <..dos macros a la
vez..> parece que esta consulta viene que ni hecha a posta)

no se como hacer para detener la ejecucion de una 'presentacion' que
consiste en una serie de imagenes y un cuadro de texto que se van
incrustando en una hoja (el codigo de dicha presentacion incluye
bastante manejo/'retardo' de tiempos y posiciones/tamaños de las
imagenes/formas) a pantalla 'totalmente' completa, o sea, sin ninguna
barra de ningun tipo..

seria el tipico boton -> "Saltar presentacion" o similar...

he incrustado un 'Button' en la hoja (que tambien se eliminaria al
cancelar la presentacion), pero no se como hacer para que detenga la
ejecucion del codigo y continue en el punto siguiente a la
presentacion.. Hasta ahora solo he conseguido errores (algunos
'bastante' serios)

si podeis echarme una mano os lo agradezco

un saludo y hasta pronto
Ivan
 

Leer las respuestas

#1 Héctor Miguel
15/10/2006 - 04:51 | Informe spam
hola, Ivan !

... como hacer para detener la ejecucion de una 'presentacion' que consiste en una serie de imagenes y [...]
... seria el tipico boton -> "Saltar presentacion" o similar...
he incrustado un 'Button' en la hoja (que tambien se eliminaria al cancelar la presentacion)
pero no se como hacer para que detenga la ejecucion del codigo y continue en el punto siguiente a la presentacion...



1) [hasta donde se]... mientras un codigo esta en ejecucion... no hay forma de lanzar 'otro' de manera 'simultanea' -?-
[incluso] si alguna instrucion 'deriva' hacia otro procedimiento, se ejecuta el 'nuevo' procedimiento [y asi sucesivamente]...
y la macro 'comando' continua en la linea siguiente [hasta despues de que le regresan 'el control de las acciones'] :))

2) [creo que] lo que podrias hacer es 'adaptar' un procedimiento que controle un intento de interrupcion por parte del usuario ;)
te paso un ejemplo al final, podrias incluirlo 'previo' al inicio del codigo de la presentacion, el el evento '_open', o... ???]
[usando la misma API del retardo] :D

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Private Declare Sub Retardo Lib "kernel32" Alias "Sleep" (ByVal Milisegundos As Long)
Sub Probando_terminaciones()
If MsgBox("Deseas saltar la presentacion ?", _
vbYesNo + vbQuestion + vbDefaultButton2, _
"Presentando...") = vbYes Then Exit Sub
MsgBox "Para terminar la presentacion en cualquier momento:" & vbCr & _
"Pulsa {Esc} o... -> {Ctrl} + {Break}", vbInformation, "Estas ""avisado""..."
Application.EnableCancelKey = xlErrorHandler
On Error GoTo Ver_Error
Dim Sig As Byte
For Sig = 1 To 50
Retardo 250
Next
Exit Sub
Ver_Error:
If Err = 18 Then _
If MsgBox("Deseas terminar con la presentacion ?", _
vbYesNo + vbQuestion, "Confirma por favor...") = vbNo Then Resume
End Sub

Preguntas similares