Saber cual seleccion hace el usuario

02/01/2006 - 11:06 por Mauro Jesús | Informe spam
Saludos a todos!

Por lo que he visto, cuando selecciona la vista preliminar de una hoja o
cuando la mando a imprimir, se genera el
evento Workbook_BeforePrint para ambos casos, mi duda es:
¿ Se puede saber si el usuario selecciona la vista preliminar o manda a
imprimir ?

La idea de esto, es que tengo un formato vacío que lleva un contador
(folio), el usuario lo llena y cuando lo manda a imprimir, se genera un
archivo de este formato que es una copia con los datos q capturó el usuario,
lo protejo contra escritura, lo guardo (con otro nombre) y lo cierro.
Posteriormente limpio el contenido del formato original y le incremento el
folio, guardo el formato para conservar el folio (todo esto por código), y
bloqueo para que el usuario no pueda grabar en este formato (es como una
plantilla). El código para incrementarlo lo puse en este evento, pero si el
usuario selecciona la vista preliminar, hace todo lo anterior y esto lo debe
hacer únicamente cuando mande a imprimir. de ahí que me interesa saber si se
puede distinguir cuando el usuario selecciona vista preliminar o selecciona
imprimir.

Nuevamente Saludos y agradezco de antemano sus comentarios y/o respuestas.

Mauro Jesús
 

Leer las respuestas

#1 KL
03/01/2006 - 00:28 | Informe spam
Hola Mauro Jesus,

Malas noticias. No se puede distinguir entre las dos cosas (al menos Excel no tiene un evento distinto para cada una de las
situaciones. Ademas, no se si te has dado cuenta de que el evento se dispara en varias situaciones distintas (no dos):

1) Cuando pulsas el menu Archivo>Imprimir... o pulsas el atajo de teclado correspondiente. Es decir al llamar el dialogo de
impresion (?!Y que pasa si luego pulsas cancelar?!)
2) Cuando pulsas el boton 'Imprimir' en la barra de herramientas 'Estandar' (Aqui no hay problema)
3) Cuando pulsas el boton 'Vista Previa' en la barra de herramientas 'Estandar' (como ya has dicho no quiere decir que vaya a
imprimir!!!)
4) Cuando pulsas el menu Archivo>Vista Previa... o pulsas el atajo de teclado correspondiente (lo mismo que el punto anterior)
5) Cuando pulsas el boton 'Imprimir' en la barra de herramientas de la ventana de Vista Previa (en este caso ya sera la segunda
vez!!!)
6) Cuando mandas algo a imprimir por codigo, p.ej.: Sheet1.Range("a1").PrintOut (Aqui no hay problema)

Quizas me haya olvidado de algun supuesto mas pero creo que queda mas o menos claro con que nos estamos enfrentando ;-)

Creo que la mejor solucion seria la siguiente:
1) Prohibir toda impresion o vista previa que sea atraves de los medios estandares. Esto lo consigues mediante:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
Cancel = True
End Sub

2) Crear un boton y/o un formulario con codigo personalizado que maneje la impresion de manera deseada. Un ejemplo:
http://j-walk.com/ss/excel/tips/tip48.htm

Saludos,
KL

Saludos,
KL


"Mauro Jesús" wrote in message news:
Saludos a todos!

Por lo que he visto, cuando selecciona la vista preliminar de una hoja o
cuando la mando a imprimir, se genera el
evento Workbook_BeforePrint para ambos casos, mi duda es:
¿ Se puede saber si el usuario selecciona la vista preliminar o manda a
imprimir ?

La idea de esto, es que tengo un formato vacío que lleva un contador
(folio), el usuario lo llena y cuando lo manda a imprimir, se genera un
archivo de este formato que es una copia con los datos q capturó el usuario,
lo protejo contra escritura, lo guardo (con otro nombre) y lo cierro.
Posteriormente limpio el contenido del formato original y le incremento el
folio, guardo el formato para conservar el folio (todo esto por código), y
bloqueo para que el usuario no pueda grabar en este formato (es como una
plantilla). El código para incrementarlo lo puse en este evento, pero si el
usuario selecciona la vista preliminar, hace todo lo anterior y esto lo debe
hacer únicamente cuando mande a imprimir. de ahí que me interesa saber si se
puede distinguir cuando el usuario selecciona vista preliminar o selecciona
imprimir.

Nuevamente Saludos y agradezco de antemano sus comentarios y/o respuestas.

Mauro Jesús




Preguntas similares