Ayuda en Macro

12/08/2003 - 13:20 por Vicente | Informe spam
Como puedo hacer para que despues de este comando, y
transcurridos unos segundos se cierre la vista previa y
continue la macro.

ActiveWindow.SelectedSheets.PrintPreview

Muchas Gracias

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
14/08/2003 - 05:54 | Informe spam
Hola, Vicente !

... hacer ... que despues de ... transcurridos unos segundos se cierre la vista previa y continue la macro.



==> Aunque al usar el metodo .PrintPreview "se dispara" el evento _BeforePrint, toma en cuenta que...
-o- SE SUSPENDE la ejecucion de codigo :(( "Ni siquiera es posible" programar un "OnTime" <\°-°/>
-o- "se deja" el control de la aplicacion en el usuario, puesto que PrintPreview "presenta" UN DIALOGO
-o- la "respuesta" del usuario ES OBLIGADA (ya sea para cancelar o "confirmar" la impresion)

==> Le ejecucion de codigo SOLO "puede" iniciarse/continuar cuando el usuario "suelta" el control. :((
_______
Saludos,
Héctor.
MS-MVP
Respuesta Responder a este mensaje
#2 Héctor Miguel
15/08/2003 - 12:43 | Informe spam
Hola, Vicente !

... como puedo controlar en el codigo si el usuario pulsa en cerrar o pulsa en imprimir [...]



==> (Busque en consultas a varios foros [desde 1997 a la fecha] y... NO HAY RESPUESTA «\^±^/», asi que...)
La UNICA manera de "controlar" el PrintPreview es... =>¡ NO USAR el PrintPreview !!!<= :((
en su lugar y en "primera instancia" usa (p.e.) "RespuestaDelUsuario = Dialogs(xlBuiltInDialog).Show"
ya que al mostrar un dialogo incorporado de esa manera, "devolvera" False si el usuario "lo cancela"
y ademas, como el evento _BeforePrint "se dispara" DOS VECES (al mostrar "primero" el PrintPreview)
seran necesarias otras variables (publicas) del tipo Booleano (Verdadero o Falso) "como apoyo" :))

Prueba con el siguiente ejemplo (adaptalo segun tus necesidades)
("tus" acciones, segun la "respuesta" del usuario "van en el lugar" de los MsgBoxes)

en un modulo de codigo "normal" ==' Las variables para "detectar" si el proceso es "por codigo" o "normal" _
(y si el usuario "cancela" el PrintPreview) '
Public Ver_xCodigo As Boolean, _
Print_xCodigo As Boolean, _
Impreso_xCodigo As Boolean

' Una macro "de prueba" :)) '
Sub Probando_VistaPrevia()
MsgBox "Iniciando vista previa [por código]..."
Ver_xCodigo = True
Impreso_xCodigo = Application.Dialogs(xlDialogPrintPreview).Show
If Not Impreso_xCodigo Then
MsgBox "El usuario CANCELO [""en"" vista previa por código]."
End If
End Sub

y en el modulo de codigo del libro ["ThisWorkbook"] ==Private Sub Workbook_BeforePrint(Cancel As Boolean)
If Ver_xCodigo Then
Ver_xCodigo = False
Print_xCodigo = True
ElseIf Print_xCodigo Then
Print_xCodigo = False
MsgBox "Iniciando impresión [""controlada"" por código]..."
Else
MsgBox "El proceso de impresión es ""normal""."
End If
End Sub
_______
Saludos,
Héctor.
MS-MVP
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida