pdf printer on each laptop different name

  • Thread starter Thread starter ricowyder
  • Start date Start date
R

ricowyder

Dear group members,

I got a macro here, which is running smoothly and printing the
worksheets as I like... sounds perfect, but as my colleagues tried to
us it, too, we discovered a bug. Here is the code:

Sub PrintSheets()

ThisWorkbook.Worksheets("01_NetRev").PrintOut Copies:=1,
Collate:=True

Application.ActivePrinter = "PDFCreator on Ne00:"
ThisWorkbook.Worksheets("01_NetRev").PrintOut Copies:=1,
ActivePrinter:= _
"PDFCreator on Ne00:", Collate:=True


End Sub

PDF Creator has been installed on all our laptops. However, some users
have installed 2 printer, some 3, some even 4. Now as PDF Creator was
installed, its name became not Ne00, but 02 or 04...
Could you help me with this? The macro should actually check/find out,
if the Name is "PDFCreator on Ne00:", "PDFCreator on Ne01:",
"PDFCreator on Ne02:" ect.

Thanks a lot for your help.

Regards,

Rico
 
Dim iCtr as long
dim FoundIt as boolean

foundit = false
for ictr = 0 to 99
on error resume next
Application.activeprinter = "PDFCreator on Ne" & format(ictr,"00") & ":"
if err.number = 0 then
foundit = true
exit for
else
'keep looking
err.clear
end if
next ictr
on error goto 0

if foundit = false then
msgbox "No printer close to that name
else
'do the real work
end if

Untested, watch for typos.
 
tom, there's a typo, a missing " around the colon s & :",

Sub PrintSheets()

ThisWorkbook.Worksheets("01_NetRev").PrintOut Copies:=1, Collate:=True
For i = 0 To 9
s = Format(i, "00")
On Error Resume Next
Application.ActivePrinter = "PDFCreator on Ne" & s & ":"
ThisWorkbook.Worksheets("01_NetRev").PrintOut Copies:=1, _
ActivePrinter:="PDFCreator on Ne" & s & ":", Collate:=True
If Err.Number = 0 Then Exit For
On Error GoTo 0
Next
End Sub
 
Yes, thanks for picking up on that typo. Hopefully the OP already has.

Not sure that argument is even necessary, however - should have gone with my
first inclination and deleted it.
 
As well as the solution already suggested, you can read the registry key at
:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts

NickHK
 
Back
Top