Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Papiergröße mit VBA einstellen

Papiergröße mit VBA einstellen
25.11.2013 13:10:43
HaWe
Hallo liebe VBA-Profis,
ich möchte eine große Excel-Tabelle, die im fertigen Zustand ca. 80cm * 130cm hat, als PDF (auf einem Plotter) ausgeben. Die Größe (80cm hoch, 130cm breit) des Tabellenblattes habe ich mit Makro ermittelt.
Wichtig: Skalierung unbedingt 100%, keine Seitenanpassung (Verkleinerung)!
Fragen:
1. Lassen sich diese Werte für eine Blattgrößendefinition verwenden, ohne dass der User eine Seiteneinrichtung mit Druckerauswahl etc. aufrufen muss?
2. Der Export nach PDF, den Excel 2010 (und wohl auch schon 2007) anbietet greift offensichtlich auf den Standarddrucker in der Grundkonfiguration zu. Wie lassen sich hier z.B. ein Plotter oder FreePDF mit Blattgrößenfestlegung automatisch einstellen?
Automatische Auswahl der entsprechenden Drucker/Plotter ist kein Problem, aber um die Seiteneinrichtung von Hand im Druckermenü kommt man offenbar nicht herum - oder?
Vielen Dank schon mal für Eure Tipps
Hans-Werner

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Papiergröße mit VBA einstellen
27.11.2013 07:48:12
fcs
Hallo Hans-Werner,
ich kenne jetzt keinen Weg, wie man die benutzerdefinierte Blattgröße direkt von VBA aus einstellen kann.
Was funktioniert (zumindest bei mir unter Windows-Vista Excel 2010):
Man kann in der Systemsteuerung (bei entsprechenden Rechten) für den Drucker (auch Free PDF) unter den erweiterten Druckereinstellungen für benutzerdefinierte Papiegröße bei PostScript-fähigen Druckern eine Papiergröße vorgeben.
Diese steht dann in den Programmen im Druckermenü bei Auswahl der Papiergröße "benutzerdefiniert" standardmäßig zur Verfügung.
Diese auswahl kann man dann per VBA über das PageSetup in Excel steuern.
Wenn du dich nicht zu sehr an die 80x130cm klammerst, dann kannst du bei dem Plotter auch die Formate A0 oder C0 wählen und geringfügig am Zoom-Faktor "spielen".
Die entsprechenden Einstellungen für die Papiergröße im PageSetup musst du mit dem Makro-Rekorder aufzeichnen.
Wenn du danach in Excel 2007 und neuer die Datei als PDF speicherst, dann hat das PDF auch die entsprechende Seitengröße.
Gruß
Franz

Anzeige
AW: Papiergröße mit VBA einstellen
27.11.2013 14:49:43
HaWe
Hallo Franz,
zunächst vielen Dank für Deine Antwort. Habe mir schon gedacht, dass es keine Lösung per VBA gibt, um die Papiergröße eines Druckers (auch FreePDF) einzustellen und bin jetzt einen anderen Weg gegangen:
1. Im VBA wird der 'ActivePrinter' ermittelt, gesichert und der neue Standard-Drucker auf FreePDF eingestellt.
2. Mit Hilfe eines 'ungebundenen' Userforms (UserForm1.Show vbModeless) werden dem Benutzer Hinweise zur Bedienung der Seiteneinrichtung gegeben, der Benutzer kann diese Hinweise ausführen ohne dass die UserForm geschlossen wird, die einzustellenden Werte für Papierlänge und -breite werden aus einem anderen Makro ermittelt und angezeigt und erst nach Beendigung dieser Einstellungen die UserForm mit den Hinweisen geschlossen.
3. Mit Schliessen der UserForm wird der zuerst gesicherte Standarddrucker wieder zurückgestellt.
Keine allzu elegante Lösung, aber im Moment die einzige, die mir eingefallen ist.
Wenn ein 'OK'- oder 'Beenden'-Knopf im UserForm nicht angezeigt wird, dann kann der User dieses Fenster auch nicht schliessen und es bleibt so lange angezeigt, bis das nächste VBA-Programm zum Drucken ausgewählt wird, in welchem per VBA-Befehl die UserForm geschlossen wird.
Gruß
Hans-Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige