Printing macro i network

  • Thread starter Thread starter Mia
  • Start date Start date
M

Mia

I´m trying to program a macro for printing. The problem is that we are
working in a network and when I selceting a printer it does not work for my
colleges. What shall I do?
 
Hi Mia

The Ne number of a printer can be different for every user

You can try this to print to for example the Adobe PDF printer

Sub Test()
Dim str As String
Dim strNetworkPrinter As String
str = Application.ActivePrinter

strNetworkPrinter = GetFullNetworkPrinterName("Adobe PDF")
If Len(strNetworkPrinter) > 0 Then
Application.ActivePrinter = strNetworkPrinter
ActiveSheet.PrintOut
End If

Application.ActivePrinter = str
End Sub


Function GetFullNetworkPrinterName(strNetworkPrinterName As String) As String
Dim strCurrentPrinterName As String, strTempPrinterName As String, i As Long
strCurrentPrinterName = Application.ActivePrinter
i = 0
Do While i < 100
strTempPrinterName = strNetworkPrinterName & " on Ne" & Format(i, "00") & ":"
On Error Resume Next ' try to change to the network printer
Application.ActivePrinter = strTempPrinterName
On Error GoTo 0
If Application.ActivePrinter = strTempPrinterName Then
GetFullNetworkPrinterName = strTempPrinterName
i = 100 ' makes the loop end
End If
i = i + 1
Loop
Application.ActivePrinter = strCurrentPrinterName ' change back to the original printer
End Function
 
Thank you Ron,

I have tryed doing as you instructed, but it doesent print, do you know what
I have done wrong?

Thank you in advance.

BR
Mia




Sub menyskrivoffert()
'
' menyskrivoffert Makro
Sheets("Offert MF").Select

Dim str As String

Dim strNetworkPrinter As String
str = Application.ActivePrinter

strNetworkPrinter = GetFullNetworkPrinterName("\\Server01\NRG DSc428 PCL
6 Färg på Ne07:")

If Len(strNetworkPrinter) > 0 Then
Application.ActivePrinter = strNetworkPrinter

ActiveWindow.SelectedSheets.PrintOut Copies:=1

End If

Application.ActivePrinter = str

Sheets("Meny").Select
End Sub


Function GetFullNetworkPrinterName(strNetworkPrinterName As String) As String
Dim strCurrentPrinterName As String, strTempPrinterName As String, i As
Long
strCurrentPrinterName = Application.ActivePrinter
i = 0
Do While i < 100
strTempPrinterName = strNetworkPrinterName & " on Ne" & Format(i,
"00") & ":"
On Error Resume Next ' try to change to the network printer
Application.ActivePrinter = strTempPrinterName
On Error GoTo 0
If Application.ActivePrinter = strTempPrinterName Then
GetFullNetworkPrinterName = strTempPrinterName
i = 100 ' makes the loop end
End If
i = i + 1
Loop
Application.ActivePrinter = strCurrentPrinterName ' change back to
the original printer
End Function




"Ron de Bruin" skrev:
 
I think I know the problem

First only fill in the name you see in the print dialog when you do Ctrl-P
strNetworkPrinter = GetFullNetworkPrinterName("\\Server01\NRG DSc428 PCL
6 Färg på Ne07:")


på is the same as on I think ?

In the function change on in this line to på
strTempPrinterName = strNetworkPrinterName & " on Ne" & Format(i, "00") & ":"
 
You are welcome

If you use different language installations you can add code to test the country code and change "on" to ?
 
Hi Ron,
I just tried your programming and it worked for me, to print 1x copy.
Is it possible to have it print more then 1x copy? Or even better to have it
come up with a prompt to select the number of copies required?
Also is it possible to have the programming make it print double side?

Regards
Kevin.
 
Back
Top