Posted to microsoft.public.excel.programming
|
|
Printing macro i network
It worked!
Thank yoy so much! You solved a lot for me!
BR
Mia
"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") & ":"
--
Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm
"Mia" wrote in message ...
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:
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
--
Regards Ron de Bruin
http://www.rondebruin.nl/tips.htm
"Mia" wrote in message ...
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?
|