View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
jaf jaf is offline
external usenet poster
 
Posts: 300
Default VBA - Active Printer Port Problem

Hi,
You can use the LIKE operator. Even though VBA help says activeprinter is
read/write its read only.

You can only change the active printer by calling the print dialog and
clicking on a printer.


Sub test()

If Application.ActivePrinter Like "Adobe*" Then
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
ActivePrinter:=Application.ActivePrinter Like "Adobe*", Collate:=True
Else
'Choose printer
Application.Dialogs(xlDialogPrinterSetup).Show
ActiveWindow.SelectedSheets.PrintOut Copies:=1,
ActivePrinter:=Application.ActivePrinter, Collate:=True
End If

Debug.Print Application.ActivePrinter
End Sub

'Debug.Print=Adobe PDF on Ne03:


John


"technotrope" <P+Pirtle+AT+mka+DOT+com wrote in message
...
I'm trying to use vba to print a worksheet. Here's the bit of code that
is causing me fits:

ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _
"Local Printer on NE03:", Collate:=True

And, the problem is...The "NE03:" keeps changing when I reboot. Sometimes
the printer is on NE03:. The next time it's on NE04:". So, I borrowed
some code from a site ("TechTrax") that reports a bunch of info about the
printers. Then, I tried to build the ActivePrinter name by combining the
string "Local Printer on " with a string of the port name. However, the
port name gets reported as "USB001" instead of "NE03."

In my list of printers, the printer's name is simply "Local Printer". Any
ideas how to do this?

TIA for any help and suggestions.