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, 9823 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
Windows Server
Drucker wird nicht mehr über GPO verteilt (1)

Frage von matzespens zum Thema Windows Server ...

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

Frage von Tealk144 zum Thema Batch & Shell ...

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

Frage von diwaffm zum Thema Drucker und Scanner ...

Drucker und Scanner
gelöst Brother Drucker druckt nicht mehr regelmäßig (9)

Frage von Nosnudinn zum Thema Drucker und Scanner ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...

Windows Server
gelöst Parameter Übergabe Terminal Server (9)

Frage von ThomasKern zum Thema Windows Server ...

Batch & Shell
Anfängerfragen - Powershell - Mailboxvertretung im Pulk einrichten (8)

Frage von Yoshimitsu zum Thema Batch & Shell ...