Festlegen eines speziellen Druckbereiches für nicht alle Tabellenb

08/09/2009 - 16:50 von Christian John | Report spam
Hallo Community,

ich habe folgendes Problem:
Wie muss die Prozedur aussehen die folgendes festlegt:

Zunàchst einmal gibt es 3 Tabellenblàtter deren Name feststeht die außen vor
bleiben sollen was die Anweisung angeht.
Für alle anderen soll ein Druckbereich festgelegt werden (der auch feststeht).
Dazukommend soll der Standarddrucker als Drucker eingestellt werden, der
Zoomfaktor 83% sein und Querformat festgelegt werden.

Dass ich am Anfang eine Abfrage brauch (If sheet.name ="123" or... then)
weiß ich eigentlich nur dann komme ich irgendwie nicht weiter beim Festlegen
der Paramter für das Drucken...

Wàre super wenn mir jemand helfen könnte...

Vielen Dank!
Christian John
 

Lesen sie die antworten

#1 Wolfgang Kutsche
08/09/2009 - 18:34 | Warnen spam
Hallo Christian,

Option Explicit
Dim i As Integer

Sub Drucken()
'>>> Schleife über alle Tabellen
For i = 1 To Sheets.Count
'>>> Auswahl der Tabellen
If Sheets(i).Name = "Tabelle2" Or Sheets(i).Name = "Tabelle5" Then
'>>> Druckbereich festlegen
Sheets(i).PageSetup.PrintArea = "$A$1:$G$19"
'>>> Druckbereich einstellen
With Sheets(i).PageSetup
'.LeftHeader = ""
'.CenterHeader = ""
'.RightHeader = ""
'.LeftFooter = ""
'.CenterFooter = ""
'.RightFooter = ""
'.LeftMargin = Application.InchesToPoints(0.787401575)
'.RightMargin = Application.InchesToPoints(0.787401575)
'.TopMargin = Application.InchesToPoints(0.984251969)
'.BottomMargin = Application.InchesToPoints(0.984251969)
'.HeaderMargin = Application.InchesToPoints(0.4921259845)
'.FooterMargin = Application.InchesToPoints(0.4921259845)
'.PrintHeadings = False
'.PrintGridlines = False
'.PrintComments = xlPrintNoComments
'.PrintQuality = 600
'.CenterHorizontally = False
'.CenterVertically = False
.Orientation = xlLandscape
'.Draft = False
'.PaperSize = xlPaperA4
'.FirstPageNumber = xlAutomatic
'.Order = xlDownThenOver
'.BlackAndWhite = False
.Zoom = 83
.PrintErrors = xlPrintErrorsDisplayed
End With
'>>> Ausdruck auf einen bestimmten Drucker erzeugen
Sheets(i).PrintOut Copies:=1, _
ActivePrinter:="FreePDF XP auf PDF1:", Collate:=True
End If
Next i
End Sub
In obigem Beispiel erhalten beide Tabellen den gleichen Druckbereich. Dies
kannst Du auch je Tabelle mit zusàtzlichen Abfragen einstellen.
Die meisten Einstelloptioen sind auskommentier.
Den Windows-Standard-Drucker zu ermitteln ist etwas aufwendig, ich habe
deshalb den aktiven DRucker mit einem Namen eingegeben. Diesen musst Du noch
anpassen.

Den Namen Deines aktiven Druckers findest Du mit:

MsgBox "aktiver Ducker: " & Application.ActivePrinter

Gruß Wolfgang
WinXP Home SP3, Office 2003 SP3 & 2007 SP1
http://www.wk-bau-edv.de

Ähnliche fragen