Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel VBA Drucker auswählen und diesen merken!
#1
Lightbulb 
Guten Morgen liebe Community,

Ich würde gerne in meiner Userform einen Button hinzufügen der die Installierten Drucker anzeigt und man einen von diesen auswählt.
Nun soll der ausgewählte Drucker gemerkt werden und überall wo in meinem Code geruckt werden soll, über den ausgewählten Drucker gedruckt werden.

Also anstatt dem normalen befehl:  ActiveSheet.PrintOut Copies:=1

ein Befehl mit hinterlegtem Drucker: ActiveSheet.PrintOut mit ausgewähltem Drucker Copies:=1

Ist so etwas möglich umzusetzen?

Danke & viele Grüße.
Antworten Top
#2
Wink 
Hallo,
in Excel ist alles möglich!
Aus dem Archiv bei Herber (https://www.herber.de/forum/archiv/1052t...isten.html) kommt folgender Code:
Code:
Public Sub ListPrinter()
    'by Ramses
    'Speichert alle installierten Drucker im Array "arrPrinter"
    Const HKEY_current_user = &H80000001
    Dim oReg As Object, i As Long
    Dim strKeyPath As String, strValue As String, msg As String
    Dim arrPrinter As Variant
    Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv")
    strKeyPath = "Software\Microsoft\Windows NT\CurrentVersion\Devices"
    oReg.EnumValues HKEY_current_user, strKeyPath, arrPrinter
    For i = 0 To UBound(arrPrinter)
        oReg.GetStringValue HKEY_current_user, strKeyPath, arrPrinter(i), strValue
        msg = msg & arrPrinter(i) & Replace(strValue, "winspool,", " auf ") & vbCr
    Next
    Set oReg = Nothing
    MsgBox msg, vbInformation, "Druckerliste WMI"
End Sub
Mit etwas Umarbeiten und der Anweisung Application.ActivePrinter=... lässt sich dann sicher etwas machen...
Gruß der AlteDresdner (Win11, Off2021)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste