Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1168to1172
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

Drucker zurücksetzten auf Standartdrucker

Drucker zurücksetzten auf Standartdrucker
Martin
Hallo Zusammen
Ich hätte da mal ne Frage. . .:
Ich habe eine Datei die meherere Benutzer nützen. Je nach Benutzerprofil ist somit ja auch der Standartdrucker anders.
Via VBA-Code drucke ich 2 Kopien auf dem Standartdrucker aus. Dies geht auch. Nun soll ich aber jeweils eine Kopie zusätzlich auf einem bestimmten Drucker drucken. Auch dies geht.
Mein Problem ist, dass der gewählte Drucker auf dem bestimmten "hängen" bleibt und nicht wieder zurück auf den Standartdrucker geht.
Hier mein Code:
...
' 1. druck (Standartdrucker)
ActiveWindow.SelectedSheets.PrintOut Copies:=2, Collate:=True
' 2. druck (bestimmter Drucker)
If ActiveSheet.Range("A16") = "Kunstharzgrösse:" Then
Application.ActivePrinter = "\\Pfad\DR_RAHMEN auf Ne02:"
ExecuteExcel4Macro "PRINT(1,,,1,,,,,,,,2,,,TRUE,,FALSE)"
Sheets("History").Range("D" & Zeile) = "Produktion gedruckt"
End If
End Sub
Hat jemand eine Idee?
Grüsschen aus der Schweiz
Martin

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Drucker zurücksetzten auf Standartdrucker
11.08.2010 10:22:00
Björn
Hallo,
also so wie Du das machst, ist das nicht 100% sicher!
Dein erster Druck geht über den momentan aktiven Drucker (das ist zwar oft der Standard-Drucker, aber eben nicht immer).
Wenn Du das aber voraussetzen kannst, dass in Deinem Fall der aktive immer der standard ist, dann speichere Dir doch einfach den Namen des aktiven Drucker in eine Variable und setze nach dem 2. Druck eben wieder die Variable als aktiven Drucker...
Ich kenne keinen Befehl, der auf Standard zurücksetzt.
Vielleicht klappt es ja so.
Gruß
Björn B.
EnumPrinterConnections,ExecQuery("Select * from Wi
11.08.2010 11:51:30
ransi
HAllo
Dein erster Druck geht über den momentan aktiven Drucker (das ist zwar oft der Standard-Drucker, aber eben nicht immer).
Das ist mir auch neu.
Dachte bisher immer das der ActivePrinter auch dert Standarddrucker ist.
Schaut mal ob hiermit etwas anfangen könnt:
Option Explicit

Public Sub Aufruf()
MsgBox find_Standarddrucker
End Sub



Public Function find_Standarddrucker()
Dim objWMI As Object, objItem As Object, I
Set objWMI = GetObject("winmgmts:\\.\root\cimv2"). _
    ExecQuery("Select * from Win32_Printer")
On Error Resume Next
For Each objItem In objWMI
    For Each I In objItem.properties_
            If I.Name = "Default" Then
            If I.Value = True Then
                find_Standarddrucker = objItem.properties_("Caption")
                Exit Function
            End If
        End If
    Next
Next
Set objWMI = Nothing
End Function


Public Sub Standarddrucker_Setzen()
Dim WSHNetwork As Object
Dim Alle_Drucker
Dim I As Integer
Set WSHNetwork = CreateObject("WScript.Network")
Set Alle_Drucker = WSHNetwork.EnumPrinterConnections
For I = 1 To Alle_Drucker.Count Step 2
    Debug.Print Alle_Drucker.Item(I)
    ' Z.B. PDF-Drucker als DefaultPrinter setzen
    ' If Alle_Drucker.Item(I ) Like "*PDF*" Then
    ' WSHNetwork.setdefaultprinter Alle_Drucker.Item(I )
    ' Exit For
    ' End If
Next
End Sub







ransi
Anzeige
Standarddrucker <> aktiver Drucker?
11.08.2010 12:05:30
Björn
Hallo ransi,
also ich verstehe Standard-Drucker als vom System definierten Drucker.
Das mache ich über die Systemsteuerung und gilt für alle Applikationen.
Wenn eine neue Excel Appliaktion geöffnet wird, dann ist der System-Standard-Drucker auch der aktive Drucker. Wenn aber nun in XL ein andere Drucker gewählt wird, dann ist das der aktive und bleibt es auch.
Das kannst du ja einfach testen.
Lass dir den ActivePrinter in ner MsgBox ausgeben. Das ist der zuletzt verwendete bzw. wenn in der Applikation noch keiner verwendet wurde eben der Standard.
Gruß
Björn B.
Anzeige
AW: Standarddrucker <> aktiver Drucker?
11.08.2010 14:39:15
Martin
Hallo Ihr beiden
Danke schon einmal fürs erste.
Kann ich den aktiven Drucker in eine Variabel laden und nach dem 2. druck auf dem 1. Drucker zurück wechseln.
Eine andere Möglichkeit ist, wenn ich zu jedem Userprofil den "Standartdrucker" festlege und eine Variable definiere. Nachtteil ist aber wenn neuer Benutzer = neue Programierung!!
Was denkt ihr was ist besser.
AW: Standarddrucker <> aktiver Drucker?
11.08.2010 15:07:32
Björn
Hallo Martin,
also ich habe Dir ja schon gechrieben, wie ich das machen würde... in einer Variablen zwischenspeichern.
So müsste das in etwa aussehen: (Hab das mal so aufgebaut, dass man sieht, dass der aktive nicht unbedingt gleich dem Standard sein muss.)

Sub test()
Dim actpri As String
actpri = Application.ActivePrinter
MsgBox actpri
'Druckerauswahl öffnen - HIER BITTE ZUM TESTEN EINEN ANDEREN DRUCKER WÄHLEN!!!
Application.Dialogs(xlDialogPrinterSetup).Show
MsgBox Application.ActivePrinter
'Den "Urpsrungs-"Drucker wieder aktivieren
Application.ActivePrinter = actpri
MsgBox Application.ActivePrinter
End Sub
Falls Du noch Hilfe beim Anpassen brauchst, einfach noch mal melden.
Gruß
Björn B.
Anzeige
vielleicht so
11.08.2010 14:42:16
steffen
Hallo Martin,
versuch mal erst den aktuellen Standarddrucker zu ermitteln, dann deine routine durchlaufen zu lassen und zum schluss wieder den alten Standarddrucker zuweisen
Sub Druck()
'aktuellen Standarddrucker feststellen
Standard = Application.ActivePrinter
'hier Deine Druckroutine.....
'alten Standarddrucker wieder einrichten
Application.ActivePrinter = Standard
End Sub
Gruß Steffen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige