• 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 kiezen geeft error in macro

Status
Niet open voor verdere reacties.

Muiter

Gebruiker
Lid geworden
11 jul 2008
Berichten
73
Om vrachtbrieven te printen die in een andere lade zitten in mijn printer heb ik een nieuwe printer aangemaakt waarin de vrachtbrieven in de standaard lade zitten. Via een macro wil ik de standaard printer omzetten naar die van de vrachtbrieven, 3x afdrukken en dan de standaard printer weer terug zetten.

Ik maak gebruik van onderstaande code die ik heb gekopieerd van een macro voor het maken van PDF's die bij mij wel werkt.

Code:
Sub print_3x_vrachtbrief()
     
Dim STDprinter As String
    STDprinter = Application.ActivePrinter
    Application.ActivePrinter = "HP LaserJet 2100 PCL6 vrachtbrief on HP2100:"
    ' change printer
    ActiveSheet.PrintOut
    ' prints the active sheet
    Application.ActivePrinter = STDprinter
    ' change back to standard printer
End Sub
 
Muiter, ik kan zo niets geks in je code ontdekken. Doorloop je code 'ns in je VBE met de F8 knop. Dan kan je regel voor regel zien wat je code doet, en welke waarde de variabele STDprinter aanneemt.

Groet, Leo
 
Het gaat fout in de regel:

Code:
Application.ActivePrinter = "HP LaserJet 2100 PCL6 vrachtbrief op HP2100:"

Ik krijg de foutmelding:
Fout 1004 tijdens uitvoering:

Methode ActivePrinter van object _Application is mislukt
 
Muiter, Het lijkt er dus op dat die printernaam onjuist is... Om nu een stapje verder te gaan, moet je gebruik gaan maken van je immediate window. Daar heb je de mogelijkheid om te zien wat de code aangeeft als active printer.
Tik daar in: ? Application.ActivePrinter
en geef een enter (O ja, je moet wel eerst je macro met F8 starten, anders doet je immeditate window het niet). Je krijgt dan precies te zien hoe die printer heet. Copier die naam in je codeblok, en klaar ben je.

Je blokje kan je trouwens nog korter maken....
Code:
Sub Print3x()
Dim Printer As String

    Printer = Application.ActivePrinter
    ActiveSheet.PrintOut copies:=3, ActivePrinter:="Canon PIXMA iP5000 on Ne03:"
    Application.ActivePrinter = Printer
    
End Sub

Groet, Leo
 
Laatst bewerkt:
Muiter, Het lijkt er dus op dat die printernaam onjuist is... Om nu een stapje verder te gaan, moet je gebruik gaan maken van je immediate window. Daar heb je de mogelijkheid om te zien wat de code aangeeft als active printer.
Tik daar in: ? Application.ActivePrinter
en geef een enter

Groet, Leo

Als ik invul wat jij zegt dan krijg ik:
Code:
HP LaserJet 2100 Series PCL 6 op Ne02:
Mijn standaard printer = 'HP LaserJet 2100 Series PCL 6'
De printer die ik via de macro wil gebruiken = 'HP LaserJet 2100 PCL6 vrachtbrief'
 
Opgelost, ik heb mijn vrachtbriefprinter of standaard gezet en toen de code zolas hierboven beschreven gebruikt en dan krijg ik dit type en die werkt.

Super:

Code:
Application.ActivePrinter = "HP LaserJet 2100 PCL6 vrachtbrief op Ne03:"
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan