Etiket printen op aparte printer met macro

Status
Niet open voor verdere reacties.

plank

Gebruiker
Lid geworden
23 sep 2009
Berichten
34
Ik heb een printer erbij genomen om etiketten te kunnen printen.
Nu wil ik een printknop maken op mijn word document zodat het etiket gelijk geprint wordt op de juiste printer en niet op de standaard A4 printer.
Anders moet je constant naar afdrukken en dan de printer selecteren.
Hopelijk is dat mogelijk met VBA.
 
Code:
Sub PrinterTechnique()
    Dim sCurrentPrinter as String
    Dim sPDFwriter as String

    ' save current printer name, then change to PDF writer
    sCurrentPrinter = Application.ActivePrinter
    Application.ActivePrinter = "Microsoft Print to PDF"

    ' print document, then go back to the original printer
    ActiveDocument.PrintOut
    Application.ActivePrinter = sCurrentPrinter

End Sub
bron: https://word.tips.net/T000318_Temporarily_Changing_the_Printer_in_a_Macro.html
 
Laatst bewerkt:
alphamax,

Hartelijk dank.
Maar moet ik nu bij Microsoft Print to PDF mijn printernaam ingeven die ik gebruik voor de etiketten?
Heb een sneltoets gemaakt maar geeft dan fout op bij die regel.

Dim sCurrentPrinter As String
Dim sPDFwriter As String

' save current printer name, then change to PDF writer
sCurrentPrinter = Application.ActivePrinter
Application.ActivePrinter = "ZDesinger GK420d"

' print document, then go back to the original printer
ActiveDocument.PrintOut
Application.ActivePrinter = sCurrentPrinter
 
:eek: je hebt helemaal gelijk.
Nu werkt het wel.
Hartelijk dank.
 
Met deze code krijg je precies de namen die je nodig hebt bij ActivePrinter.
Code:
Option Explicit

Public Sub ListPrinters()

    Const HKEY_CURRENT_USER = &H80000001

    Dim aOn As Variant
    Dim aPrinter As Variant
    Dim aType As Variant
    Dim sKey As String
    Dim sOn As String
    Dim sPort As String
    Dim sPrinter As String
    Dim sValue As String
    Dim vPrinter As Variant

    sKey = "Software\Microsoft\Windows NT\CurrentVersion\Devices"

    aOn = Split(Application.ActivePrinter, " ")
    sOn = aOn(UBound(aOn) - 1)

    With GetObject("WINMGMTS:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
        .EnumValues HKEY_CURRENT_USER, sKey, aPrinter, aType
        For Each vPrinter In aPrinter
            .GetStringValue HKEY_CURRENT_USER, sKey, vPrinter, sValue
            sPort = Split(sValue, ",")(1)
            sPrinter = sPrinter & vbCrLf & vPrinter & " " & sOn & " " & sPort
        Next
    End With
    
    MsgBox sPrinter

End Sub
 
Oke, ook handig.
Is het eigenlijk ook mogelijk om de lettertype en grootte in de macro mee te nemen?
Is nu ook vreemd als ik de 3 regels met ctrl C kopieer en op het etiket met ctrl V plak dan staat alles achter elkaar.
Moet dan zelf aan het einde van de regels op enter drukken.
Is dit ook te maken in macro?
 
Is het eigenlijk ook mogelijk om de lettertype en grootte in de macro mee te nemen?
Die stel je in, in word, waar je plakt, niet in de macro.
Is nu ook vreemd als ik de 3 regels met ctrl C kopieer en op het etiket met ctrl V plak dan staat alles achter elkaar.
Dan zal er waarschijnlijk geen enter staan in wat je kopieert
Moet dan zelf aan het einde van de regels op enter drukken.
Is dit ook te maken in macro?
Als er geen scheidingsteken in staat, kan een macro er ook geen toevoegen.
Of hebben de regels vaste lengtes?

Ik denk dat ik beter kan helpen als je een paar voorbeeldbestandjes toevoegd.
Wist je dat etiketten kan samenvoegen met een gegevensbestand.
 
Het is namelijk zo, ik heb een Dymo, daar zit software bij, dus met de pakbonnen van Bol.com kopieer ik het compleet naar de Dymo.
Dit gaat dan automatisch centreren en gewoon onder elkaar.
Nu heb ik een Zebra, daar zit geen software bij, dus dacht het op te lossen met een wordbestand met de afmetingen van mijn etiket.
Dan heb ik alleen dat het achter elkaar staat, bij de Dymo gebeurt dat niet.
Dus kan geen voorbeeldje mee sturen.

Maar is gewoon dus extra werk, helaas gaat het niet.
Maar bedankt voor het meedenken.
 
Begin eens met mee te sturen wat je aan data wilt printen; we kunnen niet meedenken als we niet weten waar je mee werkt.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan