Via VBA bei EXCEL Drucker umstellen

Hallo,
ein kleines Problem macht mir reichlich Kopfzerbrechen…
Folgende Problemstellung:
Aus einer ACCESS Anwendung heraus soll zusaetzlich zu einem Bericht eine XLS-Datei gedruckt werden. Der Ausdruck soll auf einem speziellen Drucker, nicht Standartdrucker, erfolgen.
In Access ist es kein Problem, denn da kann ich die Liste der Application.Printers nach dem Druckernamen durchsuchen und das Druckerobject .Active Printer zuweisen.
Nun aber in EXCEL gibt es diese Auflistung anscheinend nicht und Application.ActicePrinter ist kein Printerobjekt sondern ein String der Form „druckername auf port“, der auch zu allem Ueberfluss sprachabhaengig ist.

In dem Access-Druckerobjekt gibt es auch einen Slot .port aber das ist nicht das was ich in EXCEL als Port stetzen muss.

Meine Frage nun konkret: wie komme ich an die Bezeichnung des Ports, bzw. wie kann ich den Drucker umschalten ohne im System den Standartdrucker umzustellen.

Da die Anwendung in einem Unternehmen in verschiedenen Abteilungen verwendet wird, muss ich je nach dem Wer/Wo gedruckt wird den Drucker spezifisch fuer diese Abteilung umstellen.

Any help welcome

Peter

Meine Frage nun konkret: wie komme ich an die Bezeichnung des
Ports, bzw. wie kann ich den Drucker umschalten ohne im System
den Standartdrucker umzustellen.

Da die Anwendung in einem Unternehmen in verschiedenen
Abteilungen verwendet wird, muss ich je nach dem Wer/Wo
gedruckt wird den Drucker spezifisch fuer diese Abteilung
umstellen.

Hallo Peter,

schaiu mal hier:

http://www.office-loesung.de/ftopic112051_0_0_asc.ph…

Gruß
Reinhard

Hallo,

besten Dank, das sieht recht vielversprechend aus. Ich hoffe das funkioniert auch im Netzwerk mit verschiedenen Systemen und Sprachen… werd es die Tage mal ausprobieren.

Tschau
Peter

Hallo Peter,

besten Dank, das sieht recht vielversprechend aus.

jepp, der Anfrager fragte ja genau das was du fragtest also Drucker wecheseln, ausdrucken, vorigen Drucker wieder als Standard festlegen.
Und ich sah Namen wie Thomas Ramel, der auf einen Link von Michael Schwimmer verwies. Auch ransi ist sehr gut.

Ergo für dich der beste Link den du im Internet finden kannst.

Ich hoffe
das funkioniert auch im Netzwerk mit verschiedenen Systemen
und Sprachen…

K.A. Ich bin sicher so wie die Codes da stehen funktionieren sie in vielen Fällen. Aber in allen weiß ich nicht.

Ist auch unheimlich schwierig, zu coden daß Vba in Wladiwostock im Netzwerk einer chinesischen Firma die japanische, isländische kishuelische Tastaturen benutzt auf Rechnern wo ca. 100 verschiedene Windowsversionen installiert sind, vermischt mit 30 Officeversionen und damit nicht genug sind noch paar MACs dabei, funktioniert.

Okay, das wäre die Hammer Hammer Aufgabe, vllt. ist „deine“ einfacher.

werd es die Tage mal ausprobieren.

Machma. Gib bitte Feedback, VÖLLIG gleich ob du sagst „Superklasse“ oder ob du sagst „Scheißtipp, der Code hat meine Festplatte gelöscht“. :smile:

Gruß
Reinhard

Hallo Reinhard,

Ist auch unheimlich schwierig, zu coden daß Vba in
Wladiwostock im Netzwerk einer chinesischen Firma die
japanische, isländische kishuelische Tastaturen benutzt auf
Rechnern wo ca. 100 verschiedene Windowsversionen installiert
sind, vermischt mit 30 Officeversionen und damit nicht genug
sind noch paar MACs dabei, funktioniert.

Okay, das wäre die Hammer Hammer Aufgabe, vllt. ist „deine“
einfacher.

Ganz so schlimm vieleicht nicht, aber die Anwendung laeuft im Netzwerk eines multinationalen Konzerns, der leider nicht durchgaengig eine spezifische Rechnerkonfiguration hat.

OK, soweit mal geschafft.
Mit leichten Modifikationen, zusaetzlichem ErrorHandling etc. habe ich die ganze Sache zum Laufen gebracht und in meine Anwendung eingebaut.
Wenn man mal weis wo die Infos abgelegt sind, dann ist es ja nicht wirklich kompliziert den Code fuers auslesen zu schreiben. Nicht destotrotz war der Link sehr hilfreich.

Ich nehme mal an das jeder, der schon ein gewisse Zeit programmiert ein Funktionssatz zum Lesen und Schreiben der Registry hat, und dann kann mal nach dem Grundsatz „Don’t think, just copy and paste“ codieren.

Getestet habe ich bisher auf
Win7 deutsch/Office2010 deutsch
Win7 deutsch /Office2003 deutsch
WinXP deutsch/ Office2003 deutsch
WinXP englisch/ Office2003 englisch
WinXP englisch/ Office2010 deutsch
Win 2008 Server englisch / Office 2010 englisch

Wahrscheinlich werde ich die Anwendung ab Mittwoch produktiv stellen und ich hoffen, das es auch auf den anderen Systemen(franzoesisch, italienisch, ???) laeuft.

Besten Dank

Tschau
Peter