Imprimir Userform

17/07/2006 - 21:25 por MARCO6325 | Informe spam
Buenas grupo, quisiera que me ayudaran
Tengo en un userform un commandButton con el cual quisiera mandar a
imprimir el formulario activo...pero que éste salga tamaño grandey
centrado. ahhh y necesito cambiar la impresora..porque no quiero que se
imprima con la impresora predeterminada, sino con otra...estuve
probando con el comando userform.print, pero me imprime en un programa
de office como imagen.les agradezco su ayuda de antemano...

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
18/07/2006 - 06:04 | Informe spam
hola, Marco !

... en un userform un commandButton con el cual quisiera... imprimir el formulario... pero que... salga tama#o grande y centrado
... ahhh y necesito cambiar la impresora..porque no quiero que se imprima con la impresora predeterminada, sino con otra
... probando con el comando userform.print, pero me imprime en un programa de office como imagen...



1) en cuanto a 'cambiar de impresora activa'... por codigo [seguramente] va a depender de si vas a utilizar para dicha tarea...
- un solo equipo, donde conoces [+/- exactamente] nombres, puertos [y demas caracteristicas] de las impresoras instaladas ?
- impresoras 'en red'... o conexiones USB [donde el puerto 'asignado' dependeria del puerto donde se conectan] ?
- distintos equipos, donde pudieras NO conocer las impresoras que pudieran estar 'disponibles' ?

-> si se trata del primer caso... prueba con la propiedad 'Application.ActivePrinter'
[quizas necesitaras ir cambiando de impresoras y mostrando un mensaje para conocer sus conexiones y nombres] -?-
-> si se trata de los 'otros' casos... [me temo que] va a ser necesario utilizar codigo -ligeramente- mas... 'exhaustivo' :))

2) para imprimir un formulario, te paso un ejemplo al final.

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

se trata de un 'pegue' del portapapeles [formato: 'mapa de bits'] sobre una hoja de un libro creado y cerrado 'al vuelo'
-> nota: si la aplicacion es en ingles... deberas cambiar 'mapa de bits' por 'bitmap' <= OJO
[ademas] 'tendras que'... encontrar la los ajustes 'adecuados' [una vez en la hoja] para 'centrar y agrandar' la imagen

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
DoEvents
Workbooks.Add
ActiveSheet.PasteSpecial Format:="mapa de bits"
ActiveWindow.PrintOut
ActiveWorkbook.Close False
End Sub
Respuesta Responder a este mensaje
#2 MARCO6325
18/07/2006 - 06:18 | Informe spam
Hola Héctor¡¡¡


1) en cuanto a 'cambiar de impresora activa'... por codigo [seguramente] va a depender de si vas a utilizar para dicha tarea un solo equipo, donde conoces [+/- exactamente] nombres, puertos [y demas caracteristicas] de las impresoras instaladas ?
- impresoras 'en red'... o conexiones USB [donde el puerto 'asignado' dependeria del puerto donde se conectan] ?
- distintos equipos, donde pudieras NO conocer las impresoras que pudieran estar 'disponibles' ?




va a ser en un solo equipo, es decir puedes usar una ruta de segumiento
, la impresora esta conectada en redcon muchas máquinasespero
q eso te sirva de algo para q me ayudes
Este código lo tenía pero no me ayudo muchocreo q imprimia hacia
una esquina...lo copio por si te sirve de algo...
millones de gracias


Private Sub Image1_Click()
Sheets("Obra").Select
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyservI en
Ne01:"
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyServII en
Ne02:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1,
Collate _
:=True
Sheets("Mantenimiento").Select
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyservI en
Ne01:"
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyServII en
Ne02:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1,
Collate _
:=True
End Sub










Héctor Miguel wrote:
hola, Marco !

> ... en un userform un commandButton con el cual quisiera... imprimir el formulario... pero que... salga tama#o grande y centrado
> ... ahhh y necesito cambiar la impresora..porque no quiero que se imprima con la impresora predeterminada, sino con otra
> ... probando con el comando userform.print, pero me imprime en un programa de office como imagen...



...
[quizas necesitaras ir cambiando de impresoras y mostrando un mensaje para conocer sus conexiones y nombres] -?-
-> si se trata de los 'otros' casos... [me temo que] va a ser necesario utilizar codigo -ligeramente- mas... 'exhaustivo' :))

2) para imprimir un formulario, te paso un ejemplo al final.

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

se trata de un 'pegue' del portapapeles [formato: 'mapa de bits'] sobre una hoja de un libro creado y cerrado 'al vuelo'
-> nota: si la aplicacion es en ingles... deberas cambiar 'mapa de bits' por 'bitmap' <= OJO
[ademas] 'tendras que'... encontrar la los ajustes 'adecuados' [una vez en la hoja] para 'centrar y agrandar' la imagen

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
DoEvents
Workbooks.Add
ActiveSheet.PasteSpecial Format:="mapa de bits"
ActiveWindow.PrintOut
ActiveWorkbook.Close False
End Sub
Respuesta Responder a este mensaje
#3 Héctor Miguel
18/07/2006 - 06:44 | Informe spam
hola. Marco !

1) a reserva de que comentes 'que significa' [+/- exactamente]: 'creo q imprimia hacia una esquina...' -?-
probablemente la orientacion en la configuracion de pagina de la hoja que se imprime...
-> NO 'coincida' con la orientacion 'directa' [en las propiedades] de la impresora -?-

2) el siguiente ejemplo 'detecta' la impresora activa, la cambia [por otra que conozcas], imprime, y regresa 'la origina'...

[... otras lineas de tu codigo ...]
' definimos una variable para captar cual es la impresora por omision '
Dim Impresora_original As String
' detectamos cual es la impresora 'actual'
Impresora_original = Application.ActivePrinter
' cambiamos a una impresora 'preferida' [para 'esta' impresion] _
solo... DECIDE si esta conectada en Ne01 o... en Ne02 ;) '
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyservI en Ne01:"
' imprimimos la hoja requerida '
Sheets("Obra").PrintOut
' devolvemos la impresora por omision 'original'
Application.ActivePrinter = Impresora_original
[... otras lineas de tu codigo ...]

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

__ las conversaciones anteriores __
1) en cuanto a 'cambiar de impresora activa'... por codigo [seguramente] va a depender de si vas a utilizar para dicha tarea
- un solo equipo, donde conoces [+/- exactamente] nombres, puertos [y demas caracteristicas] de las impresoras instaladas ?
- impresoras 'en red'... o conexiones USB [donde el puerto 'asignado' dependeria del puerto donde se conectan] ?
- distintos equipos, donde pudieras NO conocer las impresoras que pudieran estar 'disponibles' ?



... un solo equipo... puedes usar una ruta de segumiento... esta conectada en red...
Este codigo lo tenia pero no me ayudo muchocreo q imprimia hacia una esquina...lo copio por si te sirve de algo...
Private Sub Image1_Click()
Sheets("Obra").Select
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyservI en Ne01:"
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyServII en Ne02:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
Sheets("Mantenimiento").Select
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyservI en Ne01:"
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyServII en Ne02:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate:=True
End Sub
Respuesta Responder a este mensaje
#4 MARCO6325
18/07/2006 - 17:55 | Informe spam
Hola héctor¡¡
funciona de maravilla excepto dos detallitosquisiera que
imprimiera con la hoja en horizontal..para aprovechar el espacio al
máximo y ayudando un poco a los miopes, ya que saldria mas
grande.jejeje
y lo que no entiendo es que despues de imprimir no puedo seleccionar
nada con el puntero del mouse, cuando hago click en la barra de
herramientas aparece algo parecido a un boton de comando pequeñito en
la punta del puntero...y si hago click en una imagen que contiene una
macroen vez de ejecutarla selecciona la imagen...como si
estuviese manteniendo pulsado la tecla Ctrl...si me ayudas con esaos
detallitos...quedaría perfecto...sobre todo con el
último...gracias¡¡¡¡¡¡¡
te mando el código final que usé para que lo revises

Private Sub Image2_Click()
DoEvents
ImprPant 164, 0, 1, 0
ImprPant 44, 0, 1, 0
DoEvents
Workbooks.Add
ActiveSheet.PasteSpecial Format:="mapa de bits"
' imprimimos la hoja requerida '
Application.ActivePrinter = "\\ipas_linux\Piso01.ObrasyServII en Ne02:"
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, _
ActivePrinter:="\\ipas_linux\Piso01.ObrasyServII en Ne02:",
Collate:=True
ActiveWorkbook.Close False
Sheets("Inicio").Select
ActiveWorkbook.Save
End Sub
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida