37414
Goto Top

Visual Basic (Word 2016) - Code für alternativen Drucker

Hallo,

ich habe für die Nutzung eines virtuellen Druckers für E-Post folgenden Makro-Code, der grds. auch funktioniert:

Sub D_ePost()
'  
    ActiveDocument.Save
    ActivePrinter = "E-POSTBUSINESS BOX Printer"  
    Application.PrintOut FileName:="", Range:=wdPrintAllDocument, Item:= _  
        wdPrintDocumentWithMarkup, Copies:=1, Pages:="", PageType:= _  
        wdPrintAllPages, Collate:=True, Background:=True, PrintToFile:=False, _
        PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
        
    ActivePrinter = "AidA_PDF"  
    ' ActiveDocument.Close  
    ' Word.Application.Quit  
End Sub

Da dieses Makro (Word 2016) funktioniert leider nicht ganz korrekt über den Terminalserver (für Homeoffice).
Da erhalte ich immer eine Debug-Meldung in Bezug auf die Zeile "ActivePrinter = "AidA_PDF".

Nun würde ich gerne einen alternativen Drucker in den Code aufnehmen.
Also wenn Drucker 1 nicht funktioniert, bzw. gefunden wird, dann soll er Drucker 2 nehmen.

Wie würde dazu der Code lauten?

Danke und Gruß,
imebro

Content-Key: 563414

Url: https://administrator.de/contentid/563414

Ausgedruckt am: 19.03.2024 um 07:03 Uhr

Mitglied: tomolpi
tomolpi 06.04.2020 um 10:23:35 Uhr
Goto Top
Moin,

also ich bin jetzt kein VBA-Experte, aber du könntest das doch notfalls einfach mit try/catch abfangen, und dann den anderen Drucker nehmen...
Sicher lässt sich das noch schöner regeln, aber für den Anfang face-wink

LG

tomolpi
Mitglied: 37414
37414 06.04.2020 um 10:35:01 Uhr
Goto Top
Hallo und danke für die Antwort.

Ich bin noch weniger VBA-Experte und kann mit Deiner Angabe "try/catch" noch weniger anfangen face-smile
Den Code habe ich nicht selbst geschrieben.

Hat noch jemand einen Tipp? Vielleicht auch mit dem passenden Code-Schnipsel? ;)

Gruß,
imebro
Mitglied: 143728
Lösung 143728 06.04.2020 aktualisiert um 11:30:24 Uhr
Goto Top
' ...  
On Error Resume Next
ActivePrinter = "AidA_PDF"  
if Err.Number <> 0 then
    Err.Clear
    ActivePrinter = "BlaBlub"  
end if
'...  
Mitglied: 37414
37414 06.04.2020 um 11:46:31 Uhr
Goto Top
Vielen Dank für den Code.
Habe ihn jetzt eingesetzt und bin gespannt, ob es so jetzt funktioniert face-smile

Gruß,
imebro
Mitglied: 37414
37414 08.04.2020 um 08:28:48 Uhr
Goto Top
Soweit ich alles beurteilen kann, hat es mit dem Code funktioniert.
Jedenfalls gab es keine Fehlermeldung mehr face-smile

Thread wäre dann gelöst. Vielen Dank.

Gruß,
imebro