View Single Post
 
Old 10-04-2018, 09:24 AM
JennyWaley JennyWaley is offline Windows 10 Office 2016
Novice
 
Join Date: Oct 2018
Posts: 2
JennyWaley is on a distinguished road
Default Print settings used based on active printer

Once I can get past this, I am sure I can get the rest of the Macros to work which have different function based upon the choice.

For all our printers, Tray 1 is the envelope feeder, Tray 2 is letterhead, Tray 3 is Bond and Tray 4 is plain and tray 5 is manual feed.

I have a macro that I used in 2010 that I cannot get the vba to work in 2016 word. It bypasses and goes to the "else" at the end. I think it is not understanding how to read the current active printer. All the macros I am seeing for printing go to change the active printer. I think it may be related to the WordBasic command at the top.

This works fine in 2010:
No matter what I do, it is printing to the tray 4 which is plain paper for the printers which are listed by a code (xerox) and Tray 3 only (bond) for the other type of printer.

Code:
Sub whichprinter()
Dim defprinter As String

defprinter = Mid(ActivePrinter, 1, 20)
WordBasic.Insert defprinter
End Sub

Sub PrintLetterhead()
Dim defprinter As String

defprinter = Mid(ActivePrinter, 1, 20)
Select Case defprinter
    Case "\\GS-DC2\MFP1"
    With ActiveDocument.PageSetup
        .FirstPageTray = 260
        .OtherPagesTray = 259
    End With
    GoTo PrintDoc
    Case "\\GS-DC2\MFP2"
    With ActiveDocument.PageSetup
        .FirstPageTray = 260
        .OtherPagesTray = 259
    End With
    GoTo PrintDoc
    Case "\\GS-DC2\MFP3"
    With ActiveDocument.PageSetup
        .FirstPageTray = 260
        .OtherPagesTray = 259
    End With
    GoTo PrintDoc
      Case "\\GS-DC2\MFP4"
    With ActiveDocument.PageSetup
        .FirstPageTray = 260
        .OtherPagesTray = 259
    End With
    GoTo PrintDoc
    Case "\\GS-DC2\MFP5"
    With ActiveDocument.PageSetup
        .FirstPageTray = wdPrinterMiddleBin
        .OtherPagesTray = wdPrinterLowerBin
    End With
     Case "\\GS-DC2\MFP6"
    With ActiveDocument.PageSetup
        .FirstPageTray = wdPrinterMiddleBin
        .OtherPagesTray = wdPrinterLowerBin
    End With
    GoTo PrintDoc
    Case "Bookkeeping Xerox WorkCentre Pro 5335"
    With ActiveDocument.PageSetup
        .FirstPageTray = 260
        .OtherPagesTray = 259
    End With
    GoTo PrintDoc
    Case Else
    With ActiveDocument.PageSetup
        .FirstPageTray = 258
        .OtherPagesTray = 259
    End With
    GoTo PrintDoc
End Select

PrintDoc:
Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub

Last edited by macropod; 10-04-2018 at 01:39 PM. Reason: Added code tags
Reply With Quote