Sub Druckbereich_Einrichten()
Dim MeinBereich As Range
Set MeinBereich = Range("A1:H60")
ActiveSheet.PageSetup.PrintArea = MeinBereich
End Sub
Die Prozedur läuft ohne Fehler ab, aber es wird kein Druckbereich
eingerichtet. Was mache ich falsch?
Hingegen läuft
Sub Druckbereich_Einrichten()
ActiveSheet.PageSetup.PrintArea = "A1:H60"
End Sub
Ich suche jedoch die Möglichkeit, den Druckbereich dynamisch zu
definieren, also Lösung2 scheidet aus.
Am Fri, 23 Jul 2010 01:56:02 -0700 (PDT) schrieb HelmutMit:
> Ich suche jedoch die Möglichkeit, den Druckbereich dynamisch zu
> definieren, also Lösung2 scheidet aus.
dann mache es doch über einen Bereichsnamen:
Sub Druckbereich_Einrichten()
With ActiveSheet
.Names.Add Name:="MeinBereich", RefersTo:=.Range("A1:H50")
.PageSetup.PrintArea = "MeinBereich"
End With
End Sub
Mit freundlichen Grüssen
Claus Busch
--
Win XP Prof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2
Danke, Claus,
inzwischen habe ich auch meinen Fehler erkannt. Es muss heißen:
Sub Druckbereich_Einrichten()
Dim MeinBereich As Range
Set MeinBereich = Range("A1:H60")
ActiveSheet.PageSetup.PrintArea = MeinBereich.Address
End Sub
Freundliche Grüße
Helmut
Am Fri, 23 Jul 2010 02:29:24 -0700 (PDT) schrieb HelmutMit:
>>> Ich suche jedoch die Möglichkeit, den Druckbereich dynamisch zu
>>> definieren, also Lösung2 scheidet aus.
mein Vorschlag war wegen der Dynamik angedacht. Ich würde über den
Namensmanager einen dynamischen Bereichsnamen erstellen und dann beim
Einrichten des Druckbereichs nur auf diesen zugreifen:
With ActiveSheet
.PageSetup.PrintArea = "MeinBereich"
End With
PrintArea will keinen Bereich sondern eine Bereichsadresse als Zeichenfolge,
siehe dazu auch die Erläuterungen in der Hilfe. Daher sollte es so gehen:
.PrintArea = MeinBereich.Address
Was die Dynamik angeht: eine Zeichenkette kann man auch programmatisch
zusammensetzen, wenn es das ist, was Du brauchst:
VonZeile = 1
BisZeile = 60
VonSpalte = "A"
BisSpalte = "H"
DruckbereichsAdresse = VonSpalte & VonZeile & ":" & BisSpalte & BisZeile
.PrintArea = DruckbereichsAdresse
Gruß
Bernhard Sander
Danke an alle. Jetzt komme ich weiter! Schönes Wochenende!
Gruß Helmut