Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Druckbereich per VBA einrichten

1,395 views
Skip to first unread message

HelmutMit

unread,
Jul 23, 2010, 4:56:02 AM7/23/10
to
Hallo zusammen,
ich versuche vergeblich, mit folgendem Code einen Druckbereich
einzurichten:

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.

Claus Busch

unread,
Jul 23, 2010, 5:13:13 AM7/23/10
to
Hallo Helmut,

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

HelmutMit

unread,
Jul 23, 2010, 5:29:24 AM7/23/10
to

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

Claus Busch

unread,
Jul 23, 2010, 5:34:01 AM7/23/10
to
Hallo 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

Bernhard Sander

unread,
Jul 23, 2010, 5:49:09 AM7/23/10
to
Hallo Helmut,

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

HelmutMit

unread,
Jul 23, 2010, 12:43:27 PM7/23/10
to

Danke an alle. Jetzt komme ich weiter! Schönes Wochenende!
Gruß Helmut

0 new messages