Imprimir formulario
Bueno otra vez molestando, pero cada vez me doy cuenta que son más las dudas que me surgen que las respuestas que he logrado solucionar. Te cuento que la pregunta que voy a ser puede considerarse clásica; pero hasta ahora me veo en la necesidad de resolverla. Es la de imprimir un formulario activo; toda esta semana he intentado pero me doy.
El primer intento lo hice con:
Private Sub CommandButton10_Click()
UserForm2.PrintForm
End Sub
Funciona bien; pero a la hora de imprimir no hay poder humano que permita realizar la impresión de forma vertical y es lo que necesito puesto que el formulario es muy ancho.
Entonces decidí intentar con un código que hay en la red que es el siguiente.
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 CommandButton10_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
Lo instalo y pongo a correr la macro; creo que crea un segundo libro donde pega la imagen del form y luego creo que debe imprimir como siempre lo hago y estoy seguro que con este código puedo imprimir verticalmente pero... Resulta que cuando está corriendo la macro me aparece error ¨1004; Error en el método printOut de la clase Window. Inmediatamente la aplicación se me bloquea y me toca reiniciar el equipo. Yo se que esta funcionando hasta la mitad pues me queda el segundo libro expuesto pero en la ultima línea no se que ocurre. Te pido este favorcito una ayuda para este inconveniente; es de anotar que no soy experto en el tema lo poco que he aprendido lo logrado aquí. De antemano muchas gracias por cualquier ayuda.
El primer intento lo hice con:
Private Sub CommandButton10_Click()
UserForm2.PrintForm
End Sub
Funciona bien; pero a la hora de imprimir no hay poder humano que permita realizar la impresión de forma vertical y es lo que necesito puesto que el formulario es muy ancho.
Entonces decidí intentar con un código que hay en la red que es el siguiente.
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 CommandButton10_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
Lo instalo y pongo a correr la macro; creo que crea un segundo libro donde pega la imagen del form y luego creo que debe imprimir como siempre lo hago y estoy seguro que con este código puedo imprimir verticalmente pero... Resulta que cuando está corriendo la macro me aparece error ¨1004; Error en el método printOut de la clase Window. Inmediatamente la aplicación se me bloquea y me toca reiniciar el equipo. Yo se que esta funcionando hasta la mitad pues me queda el segundo libro expuesto pero en la ultima línea no se que ocurre. Te pido este favorcito una ayuda para este inconveniente; es de anotar que no soy experto en el tema lo poco que he aprendido lo logrado aquí. De antemano muchas gracias por cualquier ayuda.
1 Respuesta
Respuesta
1