Excel detecta el clic del ícono para imprimir?

10/02/2008 - 21:50 por ElProfe | Informe spam
Amigos del grupo:

Imagino que Excel puede detectar cuando una persona hace clic
directamente en el ícono para imprimir una hoja o usa el menú
[Archivo] [Imprimir] etc.

La situación es que tengo una pequeña macro que sirve para elaborar
comprobantes de egreso y que funciona mas o menos así:

-Mediante unos inputbox so solicitan y cargan los datos necesarios
para cada egreso (monto a pagar, beneficiario, concepto,
identificación tributaria, centro de costo e imputación contable)

-Una cargados los datos anteriores, se debe hacer clic en un botón
[Actualizar] para que se generen una serie de registros (diferentes
combinaciones de los datos anteriores) en un rango escondido pero de
la misma hoja.

-Hecha la "Actualización" de registros, aparece una caja que pregunta
si "Se almacena la información o no", en cuyo caso afirmativo todo se
traslada a una base de datos (en una hoja oculta)

-Superada la pregunta de almacenamiento, se imprime el comprobante de
ingreso y todo queda listo para un nuevo comprobante.

Lo que sucede (con frecuencia) es que algunos operadores solo cargan
los datos y luego imprimen, saltándose el resto de pasos, logrando
con este olvido que la información no se almacene y que haya que
repetir tiempo después todo el proceso.

Pues bien, con base en todo lo anterior me surge la siguiente
necesidad:

1) Conocer la instrucción en VBA que detecte cuando se quiera
imprimir el egreso (bien sea usando el ícono o el menú) y que
automáticamente "dispare" la Actualización de registros y luego
pregunte si "Se almacena la información o no", para posteriormente
pasar a imprimir.

2) Sería muy útil saber como puedo lograr que con código VBA se
detecte si el número de el egreso a imprimir ya existe en la base de
datos o no, para no repetirlo

Gracias anticipadas por su ayuda.

Cordial saludo,

Manuel
 

Leer las respuestas

#1 Héctor Miguel
11/02/2008 - 00:09 | Informe spam
hola, Manuel !

Imagino que Excel puede detectar... clic... en el icono para imprimir una hoja o... menu [Archivo] [Imprimir] etc.



=> existe el evento '_beforeprint' en el modulo de codigo del libro (ThisWorkbook)

... tengo una... macro... para elaborar comprobantes... que funciona mas o menos asi:
... inputbox... solicitan y cargan los datos
... cargados los datos... se debe hacer clic en... [Actualizar] para que se generen una serie de registros
... aparece una caja que pregunta si "Se almacena la informacion o no" en... caso afirmativo... se traslada a una base de datos...
-Superada la pregunta de almacenamiento, se imprime el comprobante de ingreso y todo queda listo para un nuevo comprobante.
Lo que sucede (con frecuencia) es que algunos operadores solo cargan los datos y luego imprimen, saltandose el resto de pasos
logrando con este olvido que la informacion no se almacene y que haya que repetir tiempo despues todo el proceso.
Pues bien, con base en todo lo anterior me surge la siguiente necesidad:



1) Conocer la instruccion en VBA que detecte cuando se quiera imprimir el egreso (bien sea usando el ícono o el menu)
y que automaticamente "dispare" la Actualizacion de registros y luego pregunte si "Se almacena la informacion o no"
para posteriormente pasar a imprimir.

2) Seria muy util saber como puedo lograr que con codigo VBA se detecte si el numero de el egreso a imprimir
ya existe en la base de datos o no, para no repetirlo



=> es opcional el traslado a la base de datos (o es "obligatorio") ? (en caso de que sea obligatorio)
=> que pasa (o debiera pasar) en caso de contestar "en negativo" a la pregunta de si se almacena o no ?

hablando del evento '_beforeprint' es conveniente que mantengas en perspectiva los siguientes comentarios:
- se activa tanto desde botones de barras de herramientas, como por atajos o menus y comandos
- tambien es "reconocido" si se ejecuta una vista previa de impresion
- si se inicia por una vista previa de impresion, Y se imprime desde este dialogo, se dispara DOS VECES
- no distingue cual es la hoja que se va a imprimir
- tampoco "investiga" si "la hoja en cuestion" esta dentro de una seleccion de varias hojas
(a menos que hagas un "barrido" por las hojas seleccionadas)

una vez "controlados" estos (y quizas otros) imponderables ?... ya estaras en condiciones de...
- verificar (por codigo) si "la hoja en cuestion" va dentro de la seleccion de hojas a imprimirse
- comprobar si "tal dato" (de alguna celda en alguna hoja) ya esta registrado (en otra celda de otra hoja)
- tomar el control de imprimir (o no) antes o despues de realizar otras acciones (segun sea necesario)
- etc. etc. etc.

saludos,
hector.

Preguntas similares