impresion formulario

08/07/2005 - 19:18 por fredy | Informe spam
hola grupo!
tengo la siguiente pregunta
tengo un boton en un formulario para hacer una impresion de el mismo es algo
asi:

Private Sub CommandButton3_Click()
Label24.Caption = "Copia Usuario"
Me.printform
Label24.Caption = "Copia Empresa"
Me.printform

End Sub

efectivamente realiza dos impresiones
lo que yo quiero es que estas dos impresiones queden en una sola hoja ya uqe
el formulario ocupa media y me parece un desperdicio de papel
otra cosa es saber si se puede de alguna forma que la imprecion salga
centrada horizontalmente


muchas gracias

pd. probe configurando la impresora para que imprimera dos hojas por pagina
pero no funciono.

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
09/07/2005 - 06:53 | Informe spam
hola, fredy !

... un boton en un formulario para hacer una impresion... algo asi:
Private Sub CommandButton3_Click()
Label24.Caption = "Copia Usuario"
Me.printform
Label24.Caption = "Copia Empresa"
Me.printform
End Sub
... quiero es que estas dos impresiones queden en una sola hoja... el formulario ocupa media
... otra cosa... si se puede... que la imprecion salga centrada horizontalmente
... probe configurando la impresora para que imprimera dos hojas por pagina pero no funciono.



con respecto del metodo 'PrintForm' [aunque utiliza las opciones de la impresora en el panel de control de windows]...
-> manda 'directamente' a la impresora n 'byte por byte' la imagen del formulario [por lo cual]...
-> 'lograr' que se impriman... 'dos por hoja'... va a necesitar de [alg]un 'paso intermedio' :-(
[como p.e.] 'sembrar' dos imagenes en [alg]una hoja de [alg]un libro y 'configurar' la impresion de esa hoja :)

si resulta ser una 'opcion valida'... comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#2 fredy
11/07/2005 - 15:45 | Informe spam
Gracias Hector Miguel
si esa es una buena opcion pero como hago para exportar un .jpg del
formulario?
gracias!! ;D

"Héctor Miguel" wrote:

hola, fredy !

> ... un boton en un formulario para hacer una impresion... algo asi:
> Private Sub CommandButton3_Click()
> Label24.Caption = "Copia Usuario"
> Me.printform
> Label24.Caption = "Copia Empresa"
> Me.printform
> End Sub
> ... quiero es que estas dos impresiones queden en una sola hoja... el formulario ocupa media
> ... otra cosa... si se puede... que la imprecion salga centrada horizontalmente
> ... probe configurando la impresora para que imprimera dos hojas por pagina pero no funciono.

con respecto del metodo 'PrintForm' [aunque utiliza las opciones de la impresora en el panel de control de windows]...
-> manda 'directamente' a la impresora n 'byte por byte' la imagen del formulario [por lo cual]...
-> 'lograr' que se impriman... 'dos por hoja'... va a necesitar de [alg]un 'paso intermedio' :-(
[como p.e.] 'sembrar' dos imagenes en [alg]una hoja de [alg]un libro y 'configurar' la impresion de esa hoja :)

si resulta ser una 'opcion valida'... comentas?
saludos,
hector.



Respuesta Responder a este mensaje
#3 Héctor Miguel
12/07/2005 - 00:51 | Informe spam
hola, fredy !

... es una buena opcion... como hago para exportar un .jpg del formulario?



no sera un .jpg :-( sino un 'pegue' del portapapeles [formato: 'mapa de bits']
-> nota: si la aplicacion es en ingles... deberas cambiar 'mapa de bits' por 'bitmap' <= OJO
-> incrustados en una hoja de un libro nuevo [creado 'al vuelo']
[ademas] 'tendras que'... encontrar la separacion 'adecuada' entre una forma y otra [una vez en la hoja]
-> una vez que lo 'ajustes'... desmarca las lineas comentadas [en el codigo] para 'proceder' con la impresion :))

si cualquier duda... comentas?
saludos,
hector.

copia las siguientes lineas [ligeramente adaptado de un codigo de Orlando Magalhães Filho]
en el modulo de codigo del formulario ==Private Declare Sub ImprPant Lib "User32" Alias "keybd_event" ( _
ByVal Tecla As Byte, _
ByVal Monitor As Byte, _
ByVal Estado As Long, _
ByVal InfoE As Long)
Private Sub CommandButton1_Click()
DoEvents
ImprPant 164, 0, 1, 0
ImprPant 44, 0, 1, 0
ImprPant 44, 0, 1 + 2, 0
ImprPant 164, 0, 1 + 2, 0
DoEvents
Workbooks.Add
ActiveSheet.PasteSpecial Format:="mapa de bits"
ActiveSheet.PasteSpecial Format:="mapa de bits"
ActiveSheet.Shapes(2).Top = ActiveSheet.Shapes(1).Height + 5
' ActiveWindow.PrintOut
' ActiveWorkbook.Close False
' Unload Me
End Sub
Respuesta Responder a este mensaje
#4 fredy
12/07/2005 - 19:17 | Informe spam
Hector M. muchas gracias
quisiera saber que hace la macro en:
DoEvents
ImprPant 164, 0, 1, 0
ImprPant 44, 0, 1, 0
ImprPant 44, 0, 1 + 2, 0
ImprPant 164, 0, 1 + 2, 0
DoEvents


"Héctor Miguel" wrote:

hola, fredy !

> ... es una buena opcion... como hago para exportar un .jpg del formulario?

no sera un .jpg :-( sino un 'pegue' del portapapeles [formato: 'mapa de bits']
-> nota: si la aplicacion es en ingles... deberas cambiar 'mapa de bits' por 'bitmap' <= OJO
-> incrustados en una hoja de un libro nuevo [creado 'al vuelo']
[ademas] 'tendras que'... encontrar la separacion 'adecuada' entre una forma y otra [una vez en la hoja]
-> una vez que lo 'ajustes'... desmarca las lineas comentadas [en el codigo] para 'proceder' con la impresion :))

si cualquier duda... comentas?
saludos,
hector.

copia las siguientes lineas [ligeramente adaptado de un codigo de Orlando Magalhães Filho]
en el modulo de codigo del formulario ==> Private Declare Sub ImprPant Lib "User32" Alias "keybd_event" ( _
ByVal Tecla As Byte, _
ByVal Monitor As Byte, _
ByVal Estado As Long, _
ByVal InfoE As Long)
Private Sub CommandButton1_Click()
DoEvents
ImprPant 164, 0, 1, 0
ImprPant 44, 0, 1, 0
ImprPant 44, 0, 1 + 2, 0
ImprPant 164, 0, 1 + 2, 0
DoEvents
Workbooks.Add
ActiveSheet.PasteSpecial Format:="mapa de bits"
ActiveSheet.PasteSpecial Format:="mapa de bits"
ActiveSheet.Shapes(2).Top = ActiveSheet.Shapes(1).Height + 5
' ActiveWindow.PrintOut
' ActiveWorkbook.Close False
' Unload Me
End Sub



Respuesta Responder a este mensaje
#5 Héctor Miguel
13/07/2005 - 03:40 | Informe spam
hola, fredy !

quisiera saber que hace la macro en:
DoEvents
ImprPant 164, 0, 1, 0
ImprPant 44, 0, 1, 0
ImprPant 44, 0, 1 + 2, 0
ImprPant 164, 0, 1 + 2, 0
DoEvents



1) 'DoEvents': la aplicacion [excel-vba] 'cede' su utilizacion de recursos para que los 'aprovechen' otras :))
2) 'ImprPant' [y sus 'variantes']:
a) 'ImprPant' es una funcion [con el nombre 'personalizado'] que se encuentra en una libreria [User32.dll]
[su nombre original es: ->keybd_event<-] que 'simula/emula/llama/ejecuta/...' eventos 'con' el teclado
[por eso es que vba 'le cede' su tiempo de proceso/recursos para que pueda operar 'libremente'] ;)
b) los 4 parametros que le son 'pasados' [cuyos nombres estan tambien 'personalizados'] hacen referencia a:
-> la tecla que se va a 'pulsar/emular/...' [44 es una tecla de menu y 164 es la tecla 'ImprPant'/PrnScrn']
-> los argumentos 2 y 4 son siempre cero [0]
-> el tercer argumento es para 'detectar' el estado de la tecla [si pulsada o liberada]

si te he dejado 'pior que antes'... :-( comentas?
saludos,
hector.
=>> Private Declare Sub ImprPant Lib "User32" Alias "keybd_event" ( _
ByVal Tecla As Byte, _
ByVal Monitor As Byte, _
ByVal Estado As Long, _
ByVal InfoE As Long)
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida