ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Userform - Printing (https://www.excelbanter.com/excel-discussion-misc-queries/17406-userform-printing.html)

Greg B

Userform - Printing
 
Hi all I have a problem I am using the following code,

Private Sub cmdPrint_Click()
frmOrders.PrintForm
End Sub

How is it possible to get the userform to be printed in landscape

Thanks in advance

Greg




Bob Phillips

Greg,

You could throw up a print dialog and allow the user to select landscape
(and even the printer if required), and then print after, something like

Private Sub cmdPrint_Click()
Dim fOK As Boolean
Dim sPrinter As String

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

If fOK= Then
frmOrders.PrintForm
Application.ActivePrinter = sPrinter
End If
End Sub


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Greg B" wrote in message
...
Hi all I have a problem I am using the following code,

Private Sub cmdPrint_Click()
frmOrders.PrintForm
End Sub

How is it possible to get the userform to be printed in landscape

Thanks in advance

Greg






Greg B

Thanks for your help but it is not working right.

I have a userform called "totals" It shows all the information in a nice
layout.

The trouble is it continues to print in portrait even when the settings are
set at landscape.

Is it possible to print a userform in landscape? Is there a setting I am
not using.

Thanks again
Greg



Dave Peterson

See one more response to your other thread.

Greg B wrote:

Hi all I have a problem I am using the following code,

Private Sub cmdPrint_Click()
frmOrders.PrintForm
End Sub

How is it possible to get the userform to be printed in landscape

Thanks in advance

Greg


--

Dave Peterson

Greg B

I have used the other response from Bob Phillips and it still prints
portrait.

I posted this twice because my isp must have been down.

Sorry for the double post

Greg



Bob Phillips

Greg,

Here is a technique that does work (I tested it :-) which Tom Oguily posted
some time back

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


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



Private Sub cmdPrint_Click()
' keybd_event VK_SNAPSHOT, 0, 0, 0
DoEvents
keybd_event VK_LMENU, 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_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.PageSetup.Orientation = xlLandscape
ActiveSheet.Range("A1").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1
ActiveWorkbook.Close Savechanges:=False
End Sub


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Greg B" wrote in message
...
Thanks for your help but it is not working right.

I have a userform called "totals" It shows all the information in a nice
layout.

The trouble is it continues to print in portrait even when the settings

are
set at landscape.

Is it possible to print a userform in landscape? Is there a setting I am
not using.

Thanks again
Greg





Greg B

Thanks again Bob

Greg



Dave Peterson

But I wasn't writing about Bob's response.

(although his new response looks quite similar to the one I posted (Thanks to
Tom!).)

Greg B wrote:

I have used the other response from Bob Phillips and it still prints
portrait.

I posted this twice because my isp must have been down.

Sorry for the double post

Greg


--

Dave Peterson

Bob Phillips


"Dave Peterson" wrote in message
...
But I wasn't writing about Bob's response.

(although his new response looks quite similar to the one I posted (Thanks

to
Tom!).)


The same I would say (apart from where the API stuff is declared), and I did
credit Tom, although I spelt his surname incorrectly (apologies Tom)/




All times are GMT +1. The time now is 02:01 AM.

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