Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1416to1420
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Windows7-Standarddrucker per VBA einstellbar ?

Windows7-Standarddrucker per VBA einstellbar ?
20.03.2015 14:58:16
Wolfgang_HB
Guten Tag, liebe Excellenzen !
Schon wieder stellt sich mir eine Frage im Büro...
Wir machen unsere Auftragsbearbeitung per SAP. Einige Aufträge muß ich direkt ausdrucken, andere hätte ich für Mailversand gern als pdf-Datei auf meinem Rechner, damit sie nicht manuell ausgedruckt und gescannt werden müssen.
Angeblich bietet das ach so hervorragende SAP-Betriebssystem
(zumindest mit den beschränkten Einstellungen für mich kleinen Anwender)
nur die Möglichkeit, einen Druckbefehl an den jeweils in Windows eingestellten Standarddrucker (locl) zu senden. Wenn ich von Bafehl: Ausdrucken auf Befehl:
PDF erstellen wechseln möchte,muß ich jeweils den Windows-Standarddrucker wechseln.
Die Druckernamen habe ich ausgelesen, indem ich in Excel einen Druck per Macrorecorder _ aufgezeichnet habe.

Sub testdruckpdfcreator()
Range("A1").Select
ActiveCell.FormulaR1C1 = "test1"
Range("B1").Select
Application.ActivePrinter = "PDFCreator auf Ne00:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""PDFCreator auf Ne00:"",,TRUE,,FALSE)"
End Sub

Sub testdrucksafeq()
Range("A3").Select
ActiveCell.FormulaR1C1 = "test2"
Range("B8").Select
Application.ActivePrinter = "\\BRM-PRS-02\SafeQ auf Ne03:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""\\BRM-PRS-02\SafeQ auf Ne03:"",,TRUE,,FALSE)"
End Sub

Mich würde jetzt interessieren, ob ich in Excel, zum Beispiel über einen Umschaltbutton, den Windows-Standarddrucker verändern kann, so daß nach entsprechender Auswahl auch meine über SAP ausgedruckten Dokumente wahlweise als Ausdruck oder als PDF-Datei ausgegeben werden.
Meine Recherche hat bisher nur excelinterne Lösungen gezeigt, aber kein
generelles "Umschalten" des Systemdruckers.
Es wäre toll, wenn mir Jemand weiterhelfen könnte.
Liebe Grüße und ein schönes Wochenende !
Wolfgang

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Windows7-Standarddrucker per VBA einstellbar ?
20.03.2015 15:09:20
Nepumuk
Hallo,
ein Beispiel:
Public Sub Printer_SetDefault()
    Dim objWMI As Object, objItem As Object
    Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
        ExecQuery("SELECT * FROM Win32_Printer WHERE Name LIKE '%PDF%'")
    For Each objItem In objWMI
        Call objItem.SetDefaultPrinter
    Next
    Set objWMI = Nothing
End Sub

Gruß
Nepumuk

Anzeige
AW: Windows7-Standarddrucker per VBA einstellbar ?
20.03.2015 16:53:37
Wolfgang_HB
Hallo Nepomuk !
Vielen Dank für Deine Rückmeldung.
Ich werde Deinen Lösungsvorschlag am Montag
im Büro gleich ausprobieren.
Schönes Wochenende !
Gruß
Wolfgang_HB

Windows7-Standarddrucker per VBA einstellbar !
20.03.2015 18:22:08
Wolfgang_HB
Hallo !
Ich habe nun doch nicht bis zum Montag warten können und habe es zuhause probiert.
Der Code funktioniert :-)
Vielen Dank nochmal an Nepumuk !
Der Vollständigkeit halber hier der Code fürs Umschalten zwischen zwei Druckern
zum Einkopieren in einen Umschalt/Toggle-Button:
(Zwischen die %Zeichen% kommen die gewünschten Druckernamen)
Private Sub ToggleButton1_Click()
'Auswahl des Standard-Druckers (Ausdruck oder PDF)
If ToggleButton1 = True Then
ToggleButton1.Caption = "Ausgabe am Drucker"
Call Standarddrucker
Else
ToggleButton1.Caption = "Ausgabe als PDF"
Call PDF_Druck
End If
End Sub
Sub PDF_Druck()
'

Public Sub Printer_SetDefault()
Dim objWMI As Object, objItem As Object
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
ExecQuery("SELECT * FROM Win32_Printer WHERE Name LIKE '%doPDF%'")
For Each objItem In objWMI
Call objItem.SetDefaultPrinter
Next
Set objWMI = Nothing
End Sub
Sub Standarddrucker()
'

Public Sub Printer_SetDefault()
Dim objWMI As Object, objItem As Object
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
ExecQuery("SELECT * FROM Win32_Printer WHERE Name LIKE '%EPSON STYLUS DX8400%'")
For Each objItem In objWMI
Call objItem.SetDefaultPrinter
Next
Set objWMI = Nothing
End Sub
Gruß
Wolfgang_HB

Anzeige
AW: Windows7-Standarddrucker per VBA einstellbar !
21.03.2015 11:39:17
Nepumuk
Hallo,
wenn du die Namen der Drucker genau weißt, dann würde ich das eher so machen:
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
    ExecQuery("Select * from Win32_Printer where Name='EPSON STYLUS DX8400'")

Gruß
Nepumuk

147 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige