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

VBA: Drucker ansprechen

VBA: Drucker ansprechen
Torsten
Hallo beisammen,
mit folgendem Code spreche ich bei einem User einen bestimmten Drucker im Netzwerk an
Sheets("LNe").PrintOut Copies:=1, ActivePrinter:= _
"\\DEPRINT05\DEDE24 auf Ne07:", Collate:=True
wobei der Term "Ne07" scheinbar den Port anspricht. Ich spreche hier einen ganz bestimmten Drucker an, weil erst im 2. Schritt der Standarddrucker eine 2. Kopie ausdruckt. Leider ändern sich dann und wann wieder die Portbezeichnungen (z.B. durch das Einbinden eines weiteren Druckers beim User), sodaß der nächste Druckvorgang diesen bestimmten Drucker nicht mehr erkennt. Gibt eine Möglichkeit, einen Drucker ohen Angabe des Ports direkt anzusprechen oder ist das ohne Portangabe nicht möglich?
Vielen Dank für Eure Tips im voraus.
Gruß
Torsten

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA: Drucker ansprechen
13.05.2011 09:45:41
Marc
Moin!
Auch bei Siemens?
Im Grunde ist es ganz einfach. Geh alle Zahlen von 1 bis 9 durch. Wenn der Drucker auf dem Server existiert, wird der genommen. Existiert er nicht, dann wird der nächste Punkt genommen.
For x = 1 To 9 'Druckerserver suchen, wechselt schonmal
On Error Resume Next
Application.ActivePrinter = "\\DEPRINT05\DEDE24 auf File auf Ne0" & x & ":"
Next x
Versuchs mal. Bei mir war der Part "\\DEPRINT05\" nicht notwendig.
Gruß, Marc
AW: VBA: Drucker ansprechen
13.05.2011 10:31:17
Torsten
Hallo Marc,
(nee, bin nicht bei Siemens)
zunächst mal schönen Dank für Deine Rückmeldung. Aber die Sache ist wohl ein bißchen komplexer....
Wenn ich das richtig verstanden habe, wird bei Deiner Lösung der erste vorhandene Drucker gewählt, der bei dem User eingebunden ist. Das ist aber so nicht gewollt, weil der User in unserem Trainscenter in Norddeutschland seine Leistungsnachweise erstellt - und zwar 2 Kopien: eine für ihn und eine für uns (daß heißt für unser Headquarter, das in Westdeutschland sitzt). Bei Deiner Lösung werden dann die Kopien möglicherweise irgendwo ausgedruckt (ich weiß natürlich nicht, welche Drucker alle bei dem User sonst noch eingebunden sind), nur nicht bei uns. So sieht der Code zur Zeit aus...
Sheets("LNi").PrintOut Copies:=1, ActivePrinter:= _
"\\DEPRINT05\DEDE24 auf Ne07:", Collate:=True
'Drucker Headquarter
Sheets("LNi").PrintOut Copies:=1, ActivePrinter:= _
"\\deprint01\DED060S auf Ne05:", Collate:=True
'Drucker bei Trainingscenter
Gibt's für den Sachverhalt auch eine Lösung?
Gruß
Torsten
Anzeige
AW: VBA: Drucker ansprechen
13.05.2011 11:15:38
bst
Auch Hallo,
bei .PrintOut kannst Du den Port einfach weglassen. Versuche einfach mal:
Sheets("LNi").PrintOut Copies:=1, ActivePrinter:= "\\DEPRINT05\DEDE24", Collate:=True
'Drucker Headquarter
Sheets("LNi").PrintOut Copies:=1, ActivePrinter:= "\\deprint01\DED060S", Collate:=True
'Drucker bei Trainingscenter
cu, Bernd
AW: VBA: Drucker ansprechen
13.05.2011 12:04:34
Torsten
Hallo Bernd,
auch Dir vielen Dank für Deine Rückmeldung.
Leider erhalten wir bei Deinem Vorschlag eine Fehlermeldung:
"Die Pintout-Methode des Worksheet-Objektes konnte nicht ausgeführt werden"
Scheinbar funktioniert's nicht ohne Port-Angabe.
Gruß
Torsten
Anzeige
AW: VBA: Drucker ansprechen
13.05.2011 13:32:04
Marc
Hallo!
Für gewöhnlich (und ich meine SEHR gewöhnlich) sind die Drucker im Netzwerk eindeutig benannt. Es kann diesen Drucker nur 1x geben. Daher kannst du die Methode so ausführen, da es immer nur 1 Treffer für den Drucker geben wird.
Gruß, Marc
AW: VBA: Drucker ansprechen
13.05.2011 14:14:46
Torsten
Hallo Marc,
so sieht der Code zur Zeit aus:
Dim P As Integer
For P = 1 To 9 'Druckerserver suchen, wechselt dann und wann
On Error Resume Next
Application.ActivePrinter = "\\DEPRINT05\DEDE24 auf File auf Ne0" & P & ":"
Next P
Dim P2 As Integer
For P2 = 1 To 9 'Druckerserver suchen, wechselt dann und wann
On Error Resume Next
Application.ActivePrinter = "\\deprint01\DED060S auf File auf Ne0" & P2 & ":"
Next P2
Ausgedruckt wurde aber auf keinem der beiden Drucker. Habe ich etwas falsch gemacht?
Gruß
Torsten
Anzeige
AW: VBA: Drucker ansprechen
13.05.2011 14:24:59
bst
Auch nochmals Hallo,
das funktioniert hier nun schon. Und es keinesfalls notwendig den Port anzugeben.
Damit das funktioniert muss der Drucker natürlich in Start-Systemsteuerung-Drucker auftauchen und mit dem korrekten Namen angesprochen werden.
Der lässt sich aber einfach herausfinden, einfach diesen Drucker (kurzzeitig) in der Systemsteuerung als Standarddrucker definieren und dann im VBA-Direktfenster anzeigen lassen:
?activeprinter
cu, Bernd
AW: VBA: Drucker ansprechen
13.05.2011 14:41:58
Torsten
Hallo Bernd,
die angesprochenen Drucker sind regelgerecht eingebunden und die genauen bezeichnungen habe ich über die Makro-Rekorder-Funktion herausbekommen. Soweit ist alles in Ordnung.
Gruß
Torsten
Anzeige
AW: VBA: Drucker ansprechen
13.05.2011 14:52:03
bst
Hi,
und hmmm, das verstehe ich nicht.
Da ich das noch nicht erwähnt hatte, die Portangabe darf man nur bei .PrintOut weglassen, nicht aber beim Wechseln des Standarddruckers. D.h. :
?ActivePrinter
\\myserver\Kyocera schnickschnack auf Ne04:
' ...
ActivePrinter = "\\myserver\Kyocera schnickschnack"
funktioniert nicht. Hier braucht man den Port.
Activesheet.PrintOut ActivePrinter:="\\myserver\Kyocera schnickschnack"
funktioniert hier sehr wohl. Natürlich unabhängig vom aktuell eingestellten Standarddrucker.
cu, Bernd
VBA: Drucker ansprechen
13.05.2011 19:43:44
Anton
Hallo Torsten,
schau , ob du was hiermit anfangen kannst.
Anton
Anzeige
AW: VBA: Drucker ansprechen
16.05.2011 11:03:31
Torsten
Hallo Anton,
besten Dank für Deine Rückmeldung.
Im Moment habe ich leider keine Zeit, das zu probieren. Vielleicht komme ich später mal dazu.
Gruß
Torsten

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige