Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: PageSetup.PrintArea festlegen

PageSetup.PrintArea festlegen
Peter
Guten Tag
Wie kann ich in einer Tabelle, die nicht zwingend aktiv ist, den Druckbereich festlegen?
Sowohl bei
With Sheets("ABC")
.PageSetup.PrintArea = .UsedRange
With .PageSetup
.LeftMargin = Application.InchesToPoints(1.10236220472441)
.RightMargin = Application.InchesToPoints(0.748031496062992)
.TopMargin = Application.InchesToPoints(0.708661417322835)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintQuality = 600
.Zoom = 97
.PrintErrors = xlPrintErrorsDisplayed
End With
End With
als auch bei
With Sheets("ABC")
.PageSetup.PrintArea = .Range(.cells(1,1), .cells(35,7))
....
End With
erhalte ich die Fehlermeldung "Die PrintArea-Eigenschaft des PageSetup-Objektes kann nicht festgelegt werden."
Gruss, Peter
Anzeige

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

Betreff
Benutzer
Anzeige
AW: PageSetup.PrintArea festlegen
24.01.2011 17:25:05
Josef

Hallo Peter,
.PrintArea erwartet als wert einen String, kein Range-Object.
.PageSetup.PrintArea = .UsedRange.Address


Gruß Sepp

Anzeige
AW: PageSetup.PrintArea festlegen
24.01.2011 18:07:59
Peter
Hallo Sepp
Vielen Dank! Das funktioniert.
Gruss, Peter
;
Anzeige
Anzeige

Infobox / Tutorial

PageSetup.PrintArea in Excel festlegen


Schritt-für-Schritt-Anleitung

Um den Druckbereich in Excel mit VBA festzulegen, kannst Du die PageSetup.PrintArea-Eigenschaft verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel (ALT + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf „VBAProject“ > Einfügen > Modul).

  3. Kopiere den folgenden Code und füge ihn in das Modul ein:

    Sub DruckbereichFestlegen()
       With Sheets("ABC")
           .PageSetup.PrintArea = .UsedRange.Address
           ' Alternative: Definiere den Druckbereich manuell
           '.PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(35, 7)).Address
           .PageSetup.LeftMargin = Application.InchesToPoints(1)
           .PageSetup.RightMargin = Application.InchesToPoints(0.75)
           .PageSetup.TopMargin = Application.InchesToPoints(0.7)
           .PageSetup.BottomMargin = Application.InchesToPoints(0.6)
       End With
    End Sub
  4. Schließe den VBA-Editor und führe das Makro aus (ALT + F8, wähle „DruckbereichFestlegen“ und klicke auf „Ausführen“).


Häufige Fehler und Lösungen

Ein häufiger Fehler, den Du beim Festlegen des Druckbereichs mit PageSetup.PrintArea begegnen kannst, ist die Meldung: „Die PrintArea-Eigenschaft des PageSetup-Objektes kann nicht festgelegt werden.“ Dies passiert oft, wenn Du versuchst, ein Range-Objekt direkt zuzuweisen.

Lösung: Stelle sicher, dass Du die Adresse des Bereichs über .Address übergibst. Zum Beispiel:

.PageSetup.PrintArea = .UsedRange.Address

Alternative Methoden

Neben der Verwendung von VBA kannst Du den Druckbereich auch manuell in Excel festlegen:

  1. Wähle den gewünschten Bereich in Deiner Tabelle aus.
  2. Gehe zu „Seitenlayout“ in der Menüleiste.
  3. Klicke auf „Druckbereich“ und wähle „Druckbereich festlegen“.

Diese Methode ist einfach und eignet sich gut für gelegentliche Anpassungen des Druckbereichs, ohne dass VBA erforderlich ist.


Praktische Beispiele

Hier sind einige Beispiele, wie Du PageSetup.PrintArea in verschiedenen Szenarien verwenden kannst:

  1. Druckbereich für einen gesamten Arbeitsblattbereich:

    With Sheets("ABC")
       .PageSetup.PrintArea = .UsedRange.Address
    End With
  2. Druckbereich für einen spezifischen Zellbereich:

    With Sheets("ABC")
       .PageSetup.PrintArea = .Range("A1:G35").Address
    End With
  3. Druckbereich dynamisch anpassen: Wenn Du einen sich ändernden Bereich hast, kannst Du diesen dynamisch festlegen:

    Dim letzterRow As Long
    letzterRow = Sheets("ABC").Cells(Rows.Count, "A").End(xlUp).Row
    With Sheets("ABC")
       .PageSetup.PrintArea = .Range("A1:G" & letzterRow).Address
    End With

Tipps für Profis

  • Nutze die Möglichkeit, den Druckbereich in Kombination mit anderen PageSetup-Eigenschaften zu konfigurieren, um das Layout zu optimieren.
  • Verwende .Zoom in Verbindung mit .PrintArea, um sicherzustellen, dass der Druckbereich optimal auf eine Seite passt.
  • Teste Deine VBA-Skripte in einer Kopie Deiner Datei, um unerwünschte Änderungen zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den Druckbereich für mehrere Blätter festlegen?
Du kannst eine Schleife verwenden, um durch die Blätter zu iterieren und den Druckbereich für jedes Blatt festzulegen:

Dim ws As Worksheet
For Each ws In ThisWorkbook.Worksheets
    ws.PageSetup.PrintArea = ws.UsedRange.Address
Next ws

2. Was passiert, wenn mein Druckbereich zu groß ist?
Wenn der Druckbereich zu groß ist, wird Excel versuchen, alles auf eine Seite zu drucken, was zu einer unleserlichen Ausgabe führen kann. Achte darauf, den Druckbereich entsprechend der Seiteneinstellungen zu optimieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige