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

andere printer selecteren

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

Nicu

Gebruiker
Lid geworden
23 jan 2012
Berichten
222
Ik moet voor een bepaalde sheet een andere printer selecteren, ik heb dit geprobeerd met een standaard macro maken. Dit wil echter niet lukken, ik zag op het net dat het met VBA wel mogelijk is, maar ik kom er helaas niet uit. Wat doe ik verkeerd?

Ik heb dit script gevonden:

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

Deze macro print het bestand vervolgens uit:
Sub print_naar_WOW_printer()
instaleer_printer
Dim strCurrentPrinter As String
strCurrentPrinter = Application.ActivePrinter ' onthoud de standaard active printer
On Error Resume Next ' negeer print fouten
Application.ActivePrinter = "\\ijmpr00\PR11765 op Ne03:" ' switch naar een andere printer
ActiveSheet.PrintOut ' print de actieve sheet
Application.ActivePrinter = strCurrentPrinter ' terug naar de standaard printer
On Error GoTo 0 ' hervat de normale fout afhandeling
End Sub

Mijn printer is bijvoorbeeld; PS1243 op PS1234
Wat moet ik dan bij sub installeer veanderen en wat bij het 2e gedeelte? Moet mijn macroknop verwijzen naar "Sub print_naar_WOW_printer" en dat 1e gedeelte dan gewoon voor dit deze macro zetten?

Ik wil mijn print ook graag in kleur printen, kan ik dit gelijk in dit script meenemen?

Groet,

Nicu
 
En ook hier wordt code gegeven die de beschikbare printers opnoemt, zodat je er (o.b.v. (een deel van) de printernaam) een printer van zou kunnen gebruiken. Uiteraard heb je daarmee een aanzet, die je zelf nog moet aanpassen aan jouw situatie/wensen.

Tijs.
 
Ik kom er nog steeds niet helemaal uit, heb al het nodige geprobeerd :(
 
Ik ben nu zover dat ik de andere printer aan de praat krijg via mijn script, maar hij keert niet meer terug naar de standaard printer en dat is wel essentieel.
Middels Ctrl G te drukken in VBA en daarna "?Application.ActivePrinter" in te klikken heb ik de goede verwijzing gevonden naar de printer. Maar waarom werkt deze zin niet?
Code:
Application.ActivePrinter = strCurrentPrinter ' terug naar de standaard printer


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


Sub MacroPrint()
instaleer_printer
Dim strCurrentPrinter As String
strCurrentPrinter = Application.ActivePrinter ' onthoud de standaard active printer
On Error Resume Next ' negeer print fouten
Application.ActivePrinter = "\\PS23\PR098 op Ne05:" ' switch naar een andere printer
'ActiveSheet.PrintOut ' print de actieve sheet
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
 
hier gebruiken ze dezelfde methode, dus ik denk dat het ligt aan de volgorde.

Verander het stuk:
Code:
Sub MacroPrint()
instaleer_printer
Dim strCurrentPrinter As String
strCurrentPrinter = Application.ActivePrinter ' onthoud de standaard active printer

eens naar
Code:
Sub MacroPrint()
Dim strCurrentPrinter As String
strCurrentPrinter = Application.ActivePrinter ' onthoud de standaard active printer
instaleer_printer

Oftewel: Leg eerst de huidige applicatieprinter vast en ga pas daarna een nieuwe printerverbinding maken.

Overigens zou het dan ook wel handig zijn dat je even (voor de test) laat terugmelden wat op dat moment de applicatieprinter is, dus wordt het dan (Ctrl-G opent het debug-window, dus zet die eerst open):
Code:
Sub MacroPrint()
Dim strCurrentPrinter As String
strCurrentPrinter = Application.ActivePrinter ' onthoud de standaard active printer
[COLOR="#FF0000"]Debug.Print "Huidige applicatieprinter: ", strCurrentPrinter[/COLOR]
instaleer_printer

Tijs.
 
Ik had hele goede hoop en ben ermee aan de slag gegaan, maar helaas nog steeds hetzelfde resultaat. Hij print op de juiste printer, maar komt niet terug op de normale printer. Maar ik heb wel ontdekt dat als je na het printen excel afsluit, de goede printer wel aan staat bij opnieuw opstarten. Hier zou ik ip ook voldoende aan hebben.....
Wat mij wel opvalt dat als dit mijn printer is "\\dsfsf\PR11765 op Ne02", dat de printer zelf veranderd van poort, de enen keer is het Ne02 en de andere keer is het Ne05. Hoe kan dit en wat kan ik er aan doen?

Groet,

Nicu
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan