DISABLE PRINTING DIALOGUE BOX
Thanks Thanks:  0
Likes Likes:  0
Results 1 to 7 of 7

Thread: DISABLE PRINTING DIALOGUE BOX

  1. #1
    MrExcel MVP Mark O'Brien's Avatar
    Join Date
    Feb 2002
    Location
    Columbus, OH, USA
    Posts
    3,530
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Could you post a bit of the code that displays the Print dialogue box please? I'm not sure if I fully understand.
    Thanks.

  2. #2
    Board Regular
    Join Date
    Feb 2002
    Location
    OKC
    Posts
    98
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    I have a macro that sorts a large report and prints each sorted copy. Is there any way to disable the printing dialogue box that opens when each report is printed. I am using a form as a progress bar and the printing dialogue box covers it up momentarily as each report prints. Thanks for you help.
    I tried application.displayalerts = false but that didn't disable the box.

  3. #3
    Board Regular
    Join Date
    Feb 2002
    Location
    OKC
    Posts
    98
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Mark, I am referring the the default box that pops up with you print in excel, the one that shows the pages printing etc.

  4. #4
    MrExcel MVP Ivan F Moala's Avatar
    Join Date
    Feb 2002
    Location
    Auckland, New Zealand
    Posts
    4,209
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    On 2002-04-12 16:52, Eddie G. wrote:
    Mark, I am referring the the default box that pops up with you print in excel, the one that shows the pages printing etc.
    I think you can do this via API calls.
    Its the coding I'm not sure of but would
    probably involve a few eg.

    Sending a msg to the dialog
    disabling a repaint


    Kind Regards,
    Ivan F Moala From the City of Sails

  5. #5
    Board Regular
    Join Date
    Mar 2002
    Posts
    363
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    Try repositioning your progress bar form.

    or use the status bar the display the progess as a percentage with:

    application.statusbar = x &"%"


    It's never too late to learn something new.

    Ricky

  6. #6
    MrExcel MVP Ivan F Moala's Avatar
    Join Date
    Feb 2002
    Location
    Auckland, New Zealand
    Posts
    4,209
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    I beleive Tom Ogilvy provide the following code to disable the dialog...so I don't
    have to look @ creating a routine....I just
    commented where i could.

    So this routine called in the proper way
    (see example should get rid of the dialog
    that displays when ever you do a print ie.
    the Dialod that comes up saying Print X of Y)



    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    '// The SendMessage function sends the specified message to a window or windows.
    '// The function calls the window procedure for the specified window and does not
    '// return until the window procedure has processed the message.
    '// The PostMessage function, in contrast, posts a message to a threadís message
    '// queue and returns immediately.
    '//
    '// PARAMETERS:
    '//
    '// hwnd
    '// Identifies the window whose window procedure will receive the message.
    '// If this parameter is HWND_BROADCAST, the message is sent to all top-level
    '// windows in the system, including disabled or invisible unowned windows,
    '// overlapped windows, and pop-up windows; but the message is not sent to child windows.

    '// Msg
    '// Specifies the message to be sent.

    '// wParam
    '// Specifies additional message-specific information.

    '// lParam
    '// Specifies additional message-specific information.

    '//////////////////////////////////////////////////////////////////////////
    '// The IsWindow function determines whether the specified window handle
    '// identifies an existing window.
    Private Declare Function IsWindow Lib "user32" (ByVal hwnd As Long) As Long
    '// PARAMETERS:
    '// hWnd
    '// Specifies the window handle.

    '//////////////////////////////////////////////////////////////////////////
    '//
    Private Declare Function InvalidateRect Lib "user32" (ByVal hwnd As Long, _
    lpRect As Long, ByVal bErase As Long) As Long

    Private Declare Function UpdateWindow Lib "user32" (ByVal hwnd As Long) As Long

    Private Declare Function GetDesktopWindow Lib "user32" () As Long

    Public Function fncScreenUpdating(State As Boolean, Optional Window_hWnd As Long = 0)
    Const WM_SETREDRAW = &HB
    Const WM_PAINT = &HF

    If Window_hWnd = 0 Then
    Window_hWnd = GetDesktopWindow()
    Else
    If IsWindow(hwnd:=Window_hWnd) = False Then
    Exit Function
    End If
    End If

    If State = True Then
    Call SendMessage(hwnd:=Window_hWnd, wMsg:=WM_SETREDRAW, wParam:=1, lParam:=0)
    Call InvalidateRect(hwnd:=Window_hWnd, lpRect:=0, bErase:=True)
    Call UpdateWindow(hwnd:=Window_hWnd)
    Else
    Call SendMessage(hwnd:=Window_hWnd, wMsg:=WM_SETREDRAW, wParam:=0, lParam:=0)
    End If

    End Function


    '// This is how to use the function
    Sub PrintDirect()
    fncScreenUpdating State:=False
    ActiveWindow.SelectedSheets.PrintOut Copies:=1
    fncScreenUpdating State:=True
    End Sub
    '//




    Kind Regards,
    Ivan F Moala From the City of Sails

  7. #7
    Board Regular
    Join Date
    Feb 2002
    Location
    OKC
    Posts
    98
    Post Thanks / Like
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Default

    ††
    it works great, thanks Ivan.

User Tag List

Like this thread? Share it with others

Like this thread? Share it with others

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

 

DMCA.com