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, 9708 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 ..
Ähnliche Inhalte
Drucker und Scanner
gelöst PCL-Drucker drucken nur Hieroglyphen (5)

Frage von diwaffm zum Thema Drucker und Scanner ...

Drucker und Scanner
WLAN-Drucker Canon MX715 stockt beim Drucken - aber nur von 1 PC aus! (8)

Frage von Chris-Rgbg zum Thema Drucker und Scanner ...

Outlook & Mail
Outlook 2016 - mehrere Konten - Ansicht Aufgabenleiste

Frage von Akira1 zum Thema Outlook & Mail ...

Neue Wissensbeiträge
Administrator.de Feedback

Umgangsformen auf der Seite

(7)

Information von Frank zum Thema Administrator.de Feedback ...

Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(11)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Batch & Shell
gelöst Dir tc Befehl unter Windows 10 macht Probleme (14)

Frage von sugram zum Thema Batch & Shell ...

Windows Server
Windows Server Komplettspiegelung (13)

Frage von pdiddo zum Thema Windows Server ...

Windows Server
Windows Server 2016 RDS Remoteapp Anzeigefehler (11)

Frage von qlnGenius zum Thema Windows Server ...