Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
UserForm Print Landscape
Hello everyone,
I know how to print a userform using UserForm1.PrintForm. But how do you control the output so that it prints landscape? Any ideas welcome. Repectx Laddie |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
UserForm Print Landscape
This was posted by Tom Ogilvy:
Modification of code originally posted by "Orlando Magalhães Filho" Modified to capture just the userform (not the whole window). In a general module: 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 = 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 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 'added to force landscape ActiveSheet.PageSetup.orientation = xlLandscape ActiveWindow.SelectedSheets.PrintOut Copies:=1 ActiveWorkbook.Close False End Sub LaDdIe wrote: Hello everyone, I know how to print a userform using UserForm1.PrintForm. But how do you control the output so that it prints landscape? Any ideas welcome. Repectx Laddie -- Dave Peterson |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
UserForm Print Landscape
MAGIC!!
"Dave Peterson" wrote: This was posted by Tom Ogilvy: Modification of code originally posted by "Orlando Magalhães Filho" Modified to capture just the userform (not the whole window). In a general module: 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 = 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 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 'added to force landscape ActiveSheet.PageSetup.orientation = xlLandscape ActiveWindow.SelectedSheets.PrintOut Copies:=1 ActiveWorkbook.Close False End Sub LaDdIe wrote: Hello everyone, I know how to print a userform using UserForm1.PrintForm. But how do you control the output so that it prints landscape? Any ideas welcome. Repectx Laddie -- Dave Peterson |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
UserForm Print Landscape
Nah, it was just copy|paste.
Oh, you probably meant Tom and Orlando! <vbg. LaDdIe wrote: MAGIC!! "Dave Peterson" wrote: This was posted by Tom Ogilvy: Modification of code originally posted by "Orlando Magalhães Filho" Modified to capture just the userform (not the whole window). In a general module: 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 = 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 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 'added to force landscape ActiveSheet.PageSetup.orientation = xlLandscape ActiveWindow.SelectedSheets.PrintOut Copies:=1 ActiveWorkbook.Close False End Sub LaDdIe wrote: Hello everyone, I know how to print a userform using UserForm1.PrintForm. But how do you control the output so that it prints landscape? Any ideas welcome. Repectx Laddie -- Dave Peterson -- Dave Peterson |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Landscape printing: userform | Excel Programming | |||
cannot get excel sheet to print landscape even when set landscape | Setting up and Configuration of Excel | |||
won't print in landscape | Excel Discussion (Misc queries) | |||
Print Userform Landscape - VBA | Excel Programming | |||
UserForm: how to print it landscape | Excel Programming |