Problem mit Macroaufzeichnung von verschiedenen Druckern, im speziellen von PDF Drucker

07/03/2008 - 08:52 von HassanMullah | Report spam
Hallo zusammen,

bin heute glaube ich das erste mal hier, und hoffe von Euch einen
Gedankenblitz zu bekommen. Ich habe in einem Netzwerk eine Windows
2003 Printserver mit verschiedenen Druckern am Laufen, welche auch
alle eine Freigabe haben. Verbunden werden die Drucker via "con2prt".
Soweit funktioniert hier auch ALLES.

Jetzt hat ein Anwender den Wunsch geàußert, das er pro Drucker einen
"Knopf" bekommt, welcher entweder pro Drucker ALLE Blàtter aus Word
druckt, oder pro Drucker nur das AKTUELLE Blatt. Das ganze am besten
auf 2 verschiedenen Symbolleisten.

Ich bin jetzt folgendemaßen vorgegangen.

1.) Ich habe ein neues Dokument geöffnet, welches ich als
"Drucker.dot" abgespeichert habe.
2.) Dort habe ich 2 neue leere Symbolleisten "Drucker ALLE" und
"Drucker AKTUELL" erstellt
3.) Dann habe ich exemplarisch bei einem Drucker 2 Macroaufzeichnungen
gemacht, d.h. einmal für ALLE und einmal für AKTUELL.
4.) Via ALT+F11 habe ich mir den Code angeschaut und angepasst.
5.) Dann habe ich die verschieden Macros als ICON auf die
verschiedenen Symbolleisten gestellt.
6.) So wie es aussieht, geht das jetzt bei allen "echten Blech"
Druckern, also physikalisch vorhandene Geràte. Nur bei den PDF
Druckern bekomme ich eine Fehlermeldung. Ich vermute mal, das es
irgendwas mit den internen Ports zu tun hat, aber genaueres weiss ich
momentan nicht - hier hoffe ich ja auf Eure Hilfe ;-)

Die PDF Drucker sind ganz unten gelistet. Ich habe auch schon mal
versucht statt "ActivePrinter = " daraus ein
"Application.ActivePrinter=" zu machen, was aber nichts gebracht hat.

Wenn ich den PDF Drucker versuche via "Knopf" zu starten bekomme ich
eine Fehlermeldung von "Microsoft Visual Basic":

Laufzeitfehler "5140"
Drucken nicht möglich, es wurde kein Drucker installiert.

Vielen Dank für Eure Hilfe

Gruss Hassan

Anbei mal den Code.

Sub APD_HDR_ALLE()
'
' APD_HDR_ALLE Makro
' Ausdruck auf APD-HDR: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\APD-HDR"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub APD_HDR_AS()
'
' APD_HDR_AS Makro
' Ausdruck auf APD-HDR: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\APD-HDR"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub APD_FOTO_ALLE()
'
' APD_FOTO_ALLE Makro
' Ausdruck auf APD-FOTO: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\APD-FOTO"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub APD_FOTO_AS()
'
' APD_FOTO_AS Makro
' Ausdruck auf APD-FOTO: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\APD-FOTO"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub APD_PIXMA_ALLE()
'
' APD_PIXMA_ALLE Makro
' Ausdruck auf APD-PIXMA: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\APD-PIXMA"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub APD_PIXMA_AS()
'
' APD_PIXMA_AS Makro
' Ausdruck auf APD-PIXMA: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\APD-PIXMA"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub FARBE_BEWERTUNGSZENTRUM_ALLE()
'
' FARBE_BEWERTUNGSZENTRUM_ALLE Makro
' Ausdruck auf FARBE-BEWERTUNGSZENTRUM: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\FARBE-BEWERTUNGSZENTRUM"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub FARBE_BEWERTUNGSZENTRUM_AS()
'
' FARBE_BEWERTUNGSZENTRUM_AS Makro
' Ausdruck auf FARBE-BEWERTUNGSZENTRUM: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\FARBE-BEWERTUNGSZENTRUM"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub FARBE_BLANKO_AUTOMATISCH_ALLE()
'
' FARBE_BLANKO_AUTOMATISCH_ALLE Makro
' Ausdruck auf FARBE-BLANKO-AUTOMATISCH: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\FARBE-BLANKO-AUTOMATISCH"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub FARBE_BLANKO_AUTOMATISCH_AS()
'
' FARBE_BLANKO_AUTOMATISCH_AS Makro
' Ausdruck auf FARBE-BLANKO-AUTOMATISCH: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\FARBE-BLANKO-AUTOMATISCH"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub FARBE_BLANKO_MANUELL_ALLE()
'
' FARBE_BLANKO_MANUELL_ALLE Makro
' Ausdruck auf FARBE-BLANKO-MANUELL: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\FARBE-BLANKO-MANUELL"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub FARBE_BLANKO_MANUELL_AS()
'
' FARBE_BLANKO_MANUELL_AS Makro
' Ausdruck auf FARBE-BLANKO-MANUELL: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\FARBE-BLANKO-MANUELL"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub FARBE_BRILLENZENTRUM_ALLE()
'
' FARBE_BRILLENZENTRUM_ALLE Makro
' Ausdruck auf FARBE-BRILLENZENTRUM: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\FARBE-BRILLENZENTRUM"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub FARBE_BRILLENZENTRUM_AS()
'
' FARBE_BRILLENZENTRUM_AS Makro
' Ausdruck auf FARBE-BRILLENZENTRUM: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\FARBE-BRILLENZENTRUM"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub LASER_BLANKO_AUTOMATISCH_ALLE()
'
' LASER_BLANKO_AUTOMATISCH_ALLE Makro
' Ausdruck auf LASER-BLANKO-AUTOMATISCH: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\LASER-BLANKO-AUTOMATISCH"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub LASER_BLANKO_AUTOMATISCH_AS()
'
' LASER_BLANKO_AUTOMATISCH_AS Makro
' Ausdruck auf LASER-BLANKO-AUTOMATISCH: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\LASER-BLANKO-AUTOMATISCH"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub LASER_EINZELBLATT_AUTOMATISCH_ALLE()
'
' LASER_EINZELBLATT_AUTOMATISCH_ALLE Makro
' Ausdruck auf LASER-EINZELBLATT-AUTOMATISCH: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\LASER-EINZELBLATT-AUTOMATISCH"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub LASER_EINZELBLATT_AUTOMATISCH_AS()
'
' LASER_EINZELBLATT_AUTOMATISCH_AS Makro
' Ausdruck auf LASER-EINZELBLATT-AUTOMATISCH: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\LASER-EINZELBLATT-AUTOMATISCH"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub PDF_DRUCKER_ALLE()
'
' PDF_DRUCKER_ALLE Makro
' Ausdruck auf PDF: Alle Blàtter
'
ActivePrinter = "\\srv01.huk.local\PDF"
Application.PrintOut FileName:="", Range:=wdPrintAllDocument,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
Sub PDF_DRUCKER_AS()
'
' PDF_DRUCKER_AS Makro
' Ausdruck auf PDF: Aktuelles Blatt
'
ActivePrinter = "\\srv01.huk.local\PDF"
Application.PrintOut FileName:="", Range:=wdPrintCurrentPage,
Item:= _
wdPrintDocumentContent, Copies:=1, Pages:="",
PageType:=wdPrintAllPages, _
ManualDuplexPrint:=False, Collate:=True, Background:=True,
PrintToFile:= _
False, PrintZoomColumn:=0, PrintZoomRow:=0,
PrintZoomPaperWidth:=0, _
PrintZoomPaperHeight:=0
End Sub
 

Lesen sie die antworten

#1 Thomas Gahler
11/03/2008 - 12:35 | Warnen spam
Hallo HassanMullah



1.) Ich habe ein neues Dokument geöffnet, welches ich als
"Drucker.dot" abgespeichert habe.


Optimaler Lösungsansatz


3.) Dann habe ich exemplarisch bei einem Drucker 2 Macroaufzeichnungen
gemacht, d.h. einmal für ALLE und einmal für AKTUELL.
4.) Via ALT+F11 habe ich mir den Code angeschaut und angepasst.


Das ist mal gut so. ich habe dir den Code einfach optimiert. ist dann sicher
übersichtlicher.


6.) So wie es aussieht, geht das jetzt bei allen "echten Blech"
Druckern, also physikalisch vorhandene Geràte. Nur bei den PDF
Druckern bekomme ich eine Fehlermeldung. Ich vermute mal, das es
irgendwas mit den internen Ports zu tun hat, aber genaueres weiss ich
momentan nicht - hier hoffe ich ja auf Eure Hilfe ;-)

Wenn ich den PDF Drucker versuche via "Knopf" zu starten bekomme ich
eine Fehlermeldung von "Microsoft Visual Basic":

Laufzeitfehler "5140"
Drucken nicht möglich, es wurde kein Drucker installiert.


Hmmm... schwer zu sagen

Ist jedoch auch möglich, dass sich deine Druckerumstellung und dein
Background:=True nicht so gut vertragen. Darum auch die Anpassungen.

Schau mal zu ob es so klappt und melde dich dann





Sub Demo1() 'Ganzes Dokument
procSpezialDruck _
strDruckerBezeichnung:="\\srv01.huk.local\LASER-EINZELBLATT-AUTOMATISCH",
_
intDruckBereich:=wdPrintAllDocument
End Sub

Sub Demo2() 'Aktuelle Seite
procSpezialDruck _
strDruckerBezeichnung:="\\srv01.huk.local\LASER-EINZELBLATT-AUTOMATISCH",
_
intDruckBereich:=wdPrintCurrentPage
End Sub

Private Sub procSpezialDruck( _
ByVal strDruckerBezeichnung As String, _
ByVal intDruckBereich As WdPrintOutRange)

Dim strDruckerBezeichnungAlt As String

'Originaldrucker festhalten
strDruckerBezeichnungAlt = Application.ActivePrinter

'Gewünschten Druckertemporàr aktivieren
With Dialogs(wdDialogFilePrintSetup)
.Printer = "PRN015" 'strDruckerBezeichnung
.DoNotSetAsSysDefault = True
.Execute
End With

'Dokument drucken
Application.PrintOut _
Range:=intDruckBereich, _
Background:=False

'Originaldrucker aktivieren
With Dialogs(wdDialogFilePrintSetup)
.Printer = strDruckerBezeichnungAlt
.DoNotSetAsSysDefault = True
.Execute
End With
End Sub





Thomas Gahler
MVP für WordVBA
Co-Autor von »Microsoft Word-Programmierung.
Das Handbuch« (MS Press)


- Windows XP (SP2), Office XP (SP3)

Ähnliche fragen