Imprimir userform en ejecución con un comando en A5

Soy nuevo en esto,... Pero trato de aprende en lo que es programación vba en excel,... Tengo un formulario ya esta casi terminado, lo que necesito de su gran apoyo... Deseo imprimir el formulario en hoja A5, pero no encuentro la forma,,, imprime pero la mitad... Alguien que me pueda apoyar le estoy agradecido...

Este es el formulario ya impreso pero como verán sale la mitad,... Envío uno de los códigos que encontré,, funciona pero siempre con lo mismo

Private Sub CommandButton1_Click()

Dim Wrd As Word.Application
Dim WrdDoc As Word.Document
'Dim KEYBD_EVENT As Integer

keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents

Set Wrd = CreateObject("Word.Application") 'create Word session
On Error Resume Next
Set WrdDoc = Wrd.Documents.Add
Wrd.Visible = False
WrdDoc.PageSetup.Orientation = wdOrientPortrait
Application.Dialogs(xlDialogPrinterSetup).Show
Wrd.Selection.PasteSpecial 'paste in Word doc
WrdDoc.PrintOut 'print
Application.PageSetup.PaperSize = xlPaperA5
WrdDoc.Close False
WrdDoc. Quit

1 respuesta

Respuesta
1

[Hola

Parece que es un dilema de la forma en que capturas la pantalla para obtener la imagen del "Userform". Cambia así las partes respectivas:

Declara estas constantes (borra las que ya tengas):

Const KEYEVENTF_EXTENDEDKEY = &H1
Const KEYEVENTF_KEYUP = &H2
Const VK_SNAPSHOT = &H2C
Const VK_MENU = &H12

Y haz así la captura (borra la línea que usas):

keybd_event VK_MENU, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
keybd_event VK_MENU, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0

Comentas

Abraham Valencia

¡Gracias! ..Estimado 

Por tu gran tiempo y apoyo ...encontré otro código ante mi desesperación , y te lo comparto

Dim fOK As Boolean
Dim sPrinter As String

With Application
sPrinter = .ActivePrinter
fOK = .Dialogs(xlDialogPrinterSetup).Show
End With

If fOK Then
Me.PrintForm
Application.ActivePrinter = sPrinter
End If

Saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas