Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You could post your code and a few more datails about what you are trying to
achieve. -- urkec "Mia" wrote: 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? |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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? |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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? |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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? |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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? |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
You are welcome
If you use different language installations you can add code to test the country code and change "on" to ? -- Regards Ron de Bruin http://www.rondebruin.nl/tips.htm "Mia" wrote in message ... 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? |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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. "Ron de Bruin" wrote: 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? |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Printing on a network | Excel Discussion (Misc queries) | |||
NETWORK (LAN) MACRO QUESTION: W XP Pro, SP-2 | Excel Programming | |||
Network macro not working | Excel Programming | |||
macro to save to network | Excel Programming | |||
macro won't run from network | Excel Discussion (Misc queries) |