• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Printer veranderd steeds van code, daardoor probleem

  • Onderwerp starter Onderwerp starter Nicu
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Nicu

Gebruiker
Lid geworden
23 jan 2012
Berichten
222
Ik heb een script die er voor zorgt dat tijdelijk een andere printer wordt geselecteerd, dit script is prima en werkt ook goed. Mijn probleem is dat de printer telkens automatisch van nummer wisselt, de ene keer is het \\PS1524\PR013531 op Ne01:, de andere keer is het \\PS1524\PR013531 op Ne02: en weer een andere keer is het \\PS1524\PR013531 op Ne03: .
Hoe kan dit en wat kan ik er aan doen, hoe verander ik dit in mijn script zodat hij zelf de juiste versie kiest?
Dit is het VBAscript die ik gebruik:

Code:
Sub instaleer_printer()
Dim net
Set net = CreateObject("WScript.Network")
net.AddWindowsPrinterConnection "\\PS1524\PR013531"
End Sub


Sub MacroPrint()
Dim strCurrentPrinter As String
strCurrentPrinter = Application.ActivePrinter ' onthoud de standaard active printer
Debug.Print "\\PS1524\PR013578 op Ne02:", strCurrentPrinter
instaleer_printer
On Error Resume Next ' negeer print fouten
Application.ActivePrinter = "\\PS1524\PR013531 op Ne01:" ' switch naar een andere printer
'ActiveSheet.PrintOut ' print de actieve sheet
ActiveSheet.PageSetup.BlackAndWhite = False
ActiveWindow.SmallScroll Down:=-3
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
        :=True, IgnorePrintAreas:=False
Application.ActivePrinter = strCurrentPrinter   ' terug naar de standaard printer
On Error GoTo 0 ' hervat de normale fout afhandeling
End Sub
 
Zou dit werken?
Code:
Sub MacroPrint()
Dim strCurrentPrinter As String[COLOR=#3366ff], j as long[/COLOR]
strCurrentPrinter = Application.ActivePrinter ' onthoud de standaard active printer
Debug.Print "\\PS1524\PR013578 op Ne02:", strCurrentPrinter
instaleer_printer
 
[COLOR=#3366ff]For j = 1 To 3[/COLOR]
[COLOR=#3366ff]On Error Resume Next[/COLOR]
[COLOR=#3366ff]Application.ActivePrinter = "\\PS1524\PR013578 op Ne" & Format(j, "00") & ":"[/COLOR]
[COLOR=#3366ff]Next j[/COLOR]



'ActiveSheet.PrintOut ' print de actieve sheet
ActiveSheet.PageSetup.BlackAndWhite = False
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
        :=True, IgnorePrintAreas:=False
Application.ActivePrinter = strCurrentPrinter   ' terug naar de standaard printer
On Error GoTo 0 ' hervat de normale fout afhandeling
End Sub
 
Bij mij verandert alles in de derde persoon enkelvoud altijd met een t.(een van de weinige regels in het Nederlands zonder uitzonderingen).

Code:
Sub M_snb()
  With CreateObject("Wscript.network")
    For j = 0 To .EnumPrinterConnections.Count
      c00=.EnumPrinterConnections(j)
      If InStr(c00, "\\PS1524\PR013578",1) Then Application.ActivePrinter = c00 & " on " & .EnumPrinterConnections(j - 1)
    Next
  End With
End Sub

Afhankelijk van de taalinstellingen moet je " on " of " op " gebruiken.
 
Laatst bewerkt:
het is helaas momenteel erg druk op mijn werk, wil graag naar de oplossing kijken en ben ook heel benieuwd. Zal volgende week laten horen of het is gelukt.....
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan