deejaybee
Goto Top

Excel - Druck von mehreren Dateien nacheinander und Änderung des Seitenformats

Hallo zusammen,

ich habe folgendes Problem:
Ich möchte einen Ordner voll mit Excel-Dateien als PDF drucken.

Eigentlich kein Problem, Datei öffnen, drucken, fertig.
Dem PDF-Drucker kann ich auch angeben, wo und mit welcher Bezeichnung das Dokument am Ende abgelegt werden soll.

Die Dateien sind in einem anderen Format als A4 angelegt, daher muss die Datei auch noch im Format bearbeitet werden. (Datei - Seite einrichten - Papierformat A4)
Manuell kein Problem.

Zum anderen sollen nicht alle Tabellenblätter gedruckt werden. Bzw, nur bestimmte (die Namen sind immer fest vorgegeben).

Und diese Schritte für mehrere Dateien nacheinander.
(Vielleicht noch interessant: Wir haben Excel 2003)


Da ich das nicht alles manuell machen möchte, brauche ich Eure Hilfe.
Habt Ihr nen Tipp für mich, wie man das mit nem Script lösen kann?

Content-Key: 196277

Url: https://administrator.de/contentid/196277

Printed on: April 19, 2024 at 02:04 o'clock

Member: Onitnarat
Onitnarat Dec 27, 2012 at 13:30:04 (UTC)
Goto Top
Hi,
spontan fällt mir nur Auto IT ein...damit kenne ich mich allerdings nicht sonderlich aus face-wink
Link: http://www.autoitscript.com/site/
Aber es soll ja Leute geben, die hier wahre Künstler sind. Ich persönlich halte mich da lieber an Powershell und VBS fest, aber auch hier fällt mir nichts ein, was das Papierformat ändert könnte.


Gruß
Marcus
Member: DeeJayBee
DeeJayBee Jan 07, 2013 at 14:11:00 (UTC)
Goto Top
Hallo zusammen,

Habe eine Lösung für mein Problem selbst zurecht basteln können und möchte Euch dies nicht vorenthalten:

Die Lösung funktioniert als Makro in Excel und bearbeitet den kompletten angegebenen Ordner.
Habe meinen Standarddrucker (FreePDF mit PDFtK) eingestellt, dass die "gedruckten" Dokumente alle in einem anderen festen Verzeichnis landen, daher reicht mir hier ein einfaches PrintOut.
Da meine Vorgabe war, dass nur Tabellenblätter mit bestimmtem Namen gedruckt werden sollen, reichte mir ein like "page*". Läßt sich aber recht leicht beliebig ändern.


Sub alle_bearbeiten()
Dim wb As Workbook
Dim strmyDat As String, myPath As String
Dim wksX As Worksheet

myPath = "C:\temp\" 'Hier Dateienpfad eintrage
ChDrive Left(myPath, 2)
ChDir myPath

strmyDat = Dir(myPath & "*.xls") 'alle xls - files
Do While strmyDat <> ""
Set wb = Workbooks.Open(myPath & strmyDat)
For Each wksX In wb.Worksheets
If LCase(wksX.Name) Like "page*" Then
ActiveSheet.PageSetup.PaperSize = xlPaperA4
'oder was sonst noch mit den Tabellen passieren soll.
wksX.PrintOut
End If
Next wksX
wb.Close False
strmyDat = Dir
Loop
End Sub


Das ist die verkürzte Variante, nur um die Funkltionsweise aufzuzeigen.

Schöne Grüße und viel Spass damit!