ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Printing userforms (https://www.excelbanter.com/excel-programming/359931-printing-userforms.html)

Ozgur Pars[_2_]

Printing userforms
 
Hi there,
I searched the board but could not find a post concerning a problem I face.
Its probably simple and silly but still a problem for me...

I have a userform which occupies the whole screen when the workbook is
opened. I try to print it (I can even live with only printing the image on it
-image1- ). I found a way:
userform1.printform

but this only prints part of it and I want a landscape printout.

Any help would be appreciated.

Thanks a lot,
Ozgur

Tom Ogilvy

Printing userforms
 
Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Public Const VK_SNAPSHOT = &H2C

Public Const VK_SNAPSHOT = 44
Public Const VK_LMENU = 164
Public Const KEYEVENTF_KEYUP = 2
Public Const KEYEVENTF_EXTENDEDKEY = 1


Sub Test()
UserForm1.Show
End Sub


In the userform module:




Private Sub CommandButton1_Click()
' keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0 ' key down
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
DoEvents
Workbooks.Add
Application.Wait Now + TimeValue("00:00:01")
ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False,
DisplayAsIcon:=False
ActiveSheet.Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWorkbook.Close False
End Sub

this places an image of the userform on the worksheet. You can add code to
get it to print that image out as you desire.

--
Regards,
Tom Ogilvy


"Ozgur Pars" wrote:

Hi there,
I searched the board but could not find a post concerning a problem I face.
Its probably simple and silly but still a problem for me...

I have a userform which occupies the whole screen when the workbook is
opened. I try to print it (I can even live with only printing the image on it
-image1- ). I found a way:
userform1.printform

but this only prints part of it and I want a landscape printout.

Any help would be appreciated.

Thanks a lot,
Ozgur


Ozgur Pars[_2_]

Printing userforms
 
Hi Tom,
I probably mislead you.
I have an image on the userform already. I try to print the whole uderform
but only a part is coming out when I use printform.
My problem is basic...print either the whole userform or just the image
which is on it.

Thanks,
Ozgur

"Tom Ogilvy" wrote:

Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'Public Const VK_SNAPSHOT = &H2C

Public Const VK_SNAPSHOT = 44
Public Const VK_LMENU = 164
Public Const KEYEVENTF_KEYUP = 2
Public Const KEYEVENTF_EXTENDEDKEY = 1


Sub Test()
UserForm1.Show
End Sub


In the userform module:




Private Sub CommandButton1_Click()
' keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY, 0 ' key down
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY, 0
keybd_event VK_SNAPSHOT, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
keybd_event VK_LMENU, 0, KEYEVENTF_EXTENDEDKEY + KEYEVENTF_KEYUP, 0
DoEvents
Workbooks.Add
Application.Wait Now + TimeValue("00:00:01")
ActiveSheet.PasteSpecial Format:="Bitmap", Link:=False,
DisplayAsIcon:=False
ActiveSheet.Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWorkbook.Close False
End Sub

this places an image of the userform on the worksheet. You can add code to
get it to print that image out as you desire.

--
Regards,
Tom Ogilvy


"Ozgur Pars" wrote:

Hi there,
I searched the board but could not find a post concerning a problem I face.
Its probably simple and silly but still a problem for me...

I have a userform which occupies the whole screen when the workbook is
opened. I try to print it (I can even live with only printing the image on it
-image1- ). I found a way:
userform1.printform

but this only prints part of it and I want a landscape printout.

Any help would be appreciated.

Thanks a lot,
Ozgur



All times are GMT +1. The time now is 12:28 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com