Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Excelsheet I Makro I mehrere Drucker drucken

Frage Microsoft Microsoft Office

Mitglied: nullacht15

nullacht15 (Level 1) - Jetzt verbinden

16.01.2012 um 07:44 Uhr, 9279 Aufrufe, 8 Kommentare

Guten Morgen,

bevor ich mein Problem schildere, will ich erwähnen, dass ich mit dem verwenden von Makros in Office noch nicht sonderlich viel zu tun hatte bis dato, also bitte seit gnädig mit mir ^^

Es geht darum, dass ich ein Sheet aus einer Excel Datei mithilfe von einem Makro auf mehreren Druckern ausdrucken will.
Das Drucken auf dem Standartdrucker ist weniger das Problem, Fehler bekomme ich jedoch wenn auf mehreren Druckern auf einmal drucken will ....

Hier einmal ein Teil meines Codes:

Private Sub CommandButton1_Click()
Sheets("Name des Sheets").Printout

Application.ActivePrinter = "Name des Druckers"
Sheets("Name des Sheets").Printout
End Sub

Will ich dieses Makro ausführen, so kommt folgende Fehlermeldung:
"Laufzeitfehler 438: Objekt untersützt diese Eigenschaft oder Methode nicht"


Kann mir jemand spontan auf die Sprünge helfen?
Vielen Dank schon mal
Mitglied: Xolger
16.01.2012 um 09:25 Uhr
Guten Morgen nullacht15,

Mit dem folgenden Code sollte es funktionieren.


01.
Private Sub CommandButton1_Click() 
02.
Sheets("Tabelle1").PrintOut ActivePrinter:="Microsoft XPS Document Writer" 
03.
 
04.
End Sub
"Tabelle1" und der Druckername sind natürlich entsprechend zu ändern.

Gruß
Xolger
Bitte warten ..
Mitglied: nullacht15
16.01.2012 um 09:40 Uhr
Hallo Xolger,

das ausdrucken auf einem einzigen Drucker funktioniert einwandfrei, auch wenn es sich nicht um den Standartdrucker handelt. Mein Problem ist nur, dass ich das Sheet auf 5 Druckern nacheinander mithilfe eines Makros ausdrucken würde, aber sobald er beim 2. Drucker ausdrucken will kommt die oben genannte Fehlermeldung (Laufzeitfehler 438).

Hast du hierzu noch einen Vorschlag?
Bitte warten ..
Mitglied: Xolger
16.01.2012 um 09:50 Uhr
Hallo nullacht15,

Die Fehlermeldung kann ich leider nicht nachvollziehen,
in der folgenden Variante wird erst auf XPS und dann auf Fax gedruckt.


01.
Private Sub CommandButton1_Click() 
02.
Sheets("Tabelle1").PrintOut ActivePrinter:="Microsoft XPS Document Writer" 
03.
Sheets("Tabelle1").PrintOut ActivePrinter:="Fax" 
04.
End Sub
Beim "direkten" Ansprechen von
01.
Application.ActivePrinter = "Fax"
bekomme ich aber auch eine Fehlermeldung (1004).
Daher die Verwendung von ActivePrinter:="Fax" als optionaler Parameter von PrintOut.


Gruß
Xolger

(Getestet unter W7 64bit und Office2010)
Bitte warten ..
Mitglied: nullacht15
16.01.2012 um 09:58 Uhr
Hmm seltsam ... Habe deinen Code eben übernommen und an mein Beispiel angepasst (sprich: richtiger Tabellenname und die richtigen Drucker) und es kommt wieder der Laufzeitfehler (438).

Ich probiere das ganze übrigens mit Office 2003 unter Citrix.

Weitere Ideen?
Bitte warten ..
Mitglied: Xolger
16.01.2012 um 10:22 Uhr
Hmm,

habe es nochmal unter Windows XP Prof. mit
einem alten Office 2000 getestet und es lief ohne
Probleme.

Und selbst wenn ich "Fax" in "Fax1" umbenenne,
druckt das Makro noch auf den ersten Drucker.

Den ":= " hast du auch übernommen,
denn beim "=" kommt es zu einer Fehlermeldung.


Gruß
Xolger
Bitte warten ..
Mitglied: nullacht15
16.01.2012 um 12:01 Uhr
Also ich hab es wirklich komplett so übernommen ...
Hier noch einmal der Code:

01.
Sheets("Name").PrintOut ActivePrinter:="Druckername" 
02.
Sheets("Name").PrintOut ActivePrinter:="Druckername"
Die Druckernamen habe ich mithilfe von "MsgBox Application.ActivePrinter" getestet, daran sollte es also defintiv nicht liegen ... Wie gesagt, der Fehler taucht erst auf, sobald ich das ausdrucken auf mehr als einem Drucker probiere.

Muss zwischen die zwei Druckfunktionen noch irgendein Befehl, den ich einfach nicht kenne?
Bitte warten ..
Mitglied: nullacht15
17.01.2012 um 08:02 Uhr
hat keiner mehr eine Idee oder einen möglichen Lösungsansatz?
Bitte warten ..
Mitglied: nullacht15
17.01.2012 um 11:48 Uhr
Das Problem ist gelöst! Mit folgendem Code funktioniert es:

01.
Dim std As String 
02.
std = Application.ActivePrinter 
03.
 
04.
ActivePrinter = "Druckerbezeichnung1" 
05.
Sheets("Blattname").PrintOut 
06.
 
07.
ActivePrinter = "Druckerbezeichnung2" 
08.
Sheets("Blattname").PrintOut 
09.
 
10.
' Am Ende wieder den Standartdrucker zuweisen 
11.
ActivePrinter = std
Ganz wichtig ist, dass man auf die genauen Druckerbezeichnungen achtet.
Beispiel: "\\PRINTSERVER\DRUCKERNAME auf Ne03:"

Vielen Dank für die Ansätze und schönen Tag noch
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Drucker und Scanner
gelöst PCL-Drucker drucken nur Hieroglyphen (5)

Frage von diwaffm zum Thema Drucker und Scanner ...

Batch & Shell
Mehrere lokale Drucker löschen (4)

Frage von Tealk144 zum Thema Batch & Shell ...

Netzwerkgrundlagen
SMB-Scanfreigabe von Xerox-Drucker (9)

Frage von mcdutch zum Thema Netzwerkgrundlagen ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...