pdf printer on each laptop different name

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
 
D

Dave Peterson

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.
 
G

Gary Keramidas

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
 
T

Tom Ogilvy

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.
 
N

NickHK

As well as the solution already suggested, you can read the registry key at
:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\PrinterPorts

NickHK
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top