Anzeige
Archiv - Navigation
1152to1156
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

Standarddrucker definieren

Standarddrucker definieren
DirkR
Hallo Excelgemeinde,
der unten stehende Code bereitet mir leider Probleme.
Den Code habe ich in diesem Forum erhalten. Danke nochmals dafür.
Solange ich ganz normal über das Symbol oben in der Leiste drucke funktioniert der Code einwandfrei.
Wenn ich aber einen Druck über einen CommandButton mache startet SetPrinter() nicht.
Kann mir jemand sagen warum das so ist und wie ich den Code dann trotzdem zum Laufen bekomme?
Hier der Code
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Call PrinterTest
End Sub
Private Sub PrinterTest()
If Left(ActivePrinter, 11) = "FP_MultiDoc" Or _
Left(ActivePrinter, 10) = "FreePDF XP" Or _
Left(ActivePrinter, 38) = "Microsoft Office Document Image Writer" Then
'Cancel = True
MsgBox "Bitte definieren Sie einen Standardrucker!", vbInformation, "Es ist kein  _
Standarddrucker definiert"
Call SetPrinter
End If
End Sub
Private Sub SetPrinter()
Dim objWMI As Object, objItem As Object
If Application.Dialogs(xlDialogPrinterSetup).Show Then
Set objWMI = GetObject("winmgmts:\\.\root\cimv2").ExecQuery( _
"Select * from Win32_Printer")
For Each objItem In objWMI
If CBool(InStr(1, Application.ActivePrinter, objItem.Name)) Then
objItem.SetDefaultPrinter
Exit For
End If
Next
Set objWMI = Nothing
Set objItem = Nothing
End If
Call PrinterTest
End Sub

Gruß DirkR

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
was funktioniert nicht?
16.04.2010 08:31:19
Tino
Hallo,
gehe den Code mit F8 in einzelschritten durch und stelle fest was passiert.
Gruß Tino
AW: was funktioniert nicht?
16.04.2010 08:59:15
DirkR
Hallo Tino,
ich habe noch etwas rumgedoktert und habe es hinbekommen!
In meinem Beispiel wurde:
SetPrinter () nicht durch das Ereignis Workbook_BeforePrint mit ausgelöst!?!?!
Aber nur dann, wenn ich über folgenden Code gedruckt habe:
Private Sub CommandButton1_Click()
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
:=True
End Sub
Ich habe es aber nun anders gemacht und das funktioniert.
Folgendes habe ich gemacht:
Im Modul:
Sub PrinterTest()
If Left(ActivePrinter, 11) = "FP_MultiDoc" Or _
Left(ActivePrinter, 10) = "FreePDF XP" Or _
Left(ActivePrinter, 38) = "Microsoft Office Document Image Writer" Then
'Cancel = True
MsgBox "Bitte definieren Sie einen Standardrucker!", vbInformation, _
"Es ist kein Standarddrucker definiert"
Call SetPrinter
End If
End Sub Sub SetPrinter()
Dim objWMI As Object, objItem As Object
If Application.Dialogs(xlDialogPrinterSetup).Show Then
Set objWMI = GetObject("winmgmts:\\.\root\cimv2").ExecQuery( _
"Select * from Win32_Printer")
For Each objItem In objWMI
If CBool(InStr(1, Application.ActivePrinter, objItem.Name)) Then
objItem.SetDefaultPrinter
Exit For
End If
Next
Set objWMI = Nothing
Set objItem = Nothing
End If
Call PrinterTest
End Sub In Tabelle1:
Private Sub CommandButton1_Click()
Call PrinterTest
ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1, Copies:=1, Collate _
:=True
End Sub
In Diese Arbeitsmappe:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Call PrinterTest
End Sub
So funzt es prima!!!
Trotzdem vielen Dank für deine Antwort!
Gruß DirkR
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige