Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Druckbereich festlegen mit VBA ?

Druckbereich festlegen mit VBA ?
ralle
Hallo liebes Forum!
Ihr habt mir schon so oft geholfen, dafür möchte ich mich erstmal bedanken.
Hab wieder ein neues Problem, folgendes:
Ist es möglich ein Druckbereich per Makro zu definieren? Der Druckbereich kann variieren, dass heist als Druckbereich soll bis zur letzten Zeile und Spalte wo etwas drinsteht definiert werden.
Ich hoffe Ihr könnt meine Frage nachvollziehen!?
Gruß
ralle
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Druckbereich festlegen mit VBA ?
Ulf
von GerhardW

Sub DruckbereichAnpassen()
Dim r&, c&
r = ActiveSheet.Cells.Find(What:="*", After:=[A1], LookIn:=2, LookAt:=2, _
SearchDirection:=2, SearchOrder:=1).Row
c = ActiveSheet.Cells.Find(What:="*", After:=[A1], LookIn:=2, LookAt:=2, _
SearchDirection:=2, SearchOrder:=2).Column
'Range(Cells(1, 1), Cells(r, c)).Select
ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(r, c)).Address
End Sub

Ulf
Anzeige
AW: Druckbereich festlegen mit VBA ?
ralle
Hallo Ulf,
Danke für Deine Antwort, habe noch eine einfachere Lösung gefunden. Vielleicht interesiert die Lösung auch dich, deshalb stelle ich sie hier nochmal rein.

Sub druck1()
ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address
End Sub

Gruß
ralle
Anzeige
AW: Druckbereich festlegen mit VBA ?
Ulf
Wenn du aber Zellen im UsedRange hast, die Formeln ohne Ergebnis
enthalten, werden leere Blätter "ausgedruckt".
Außerdem ist UsedRange alles andere als zuverlässig.
Die Lösung von Gerhard ist zwar etwas länger, aber zuverlässig.
Ulf
AW: Druckbereich festlegen mit VBA ?
ralle
... Danke nochmals. Hab mich überzeugen lassen und werde die Lösung von Gerhard nehmen !!
Gruß
ralle
Anzeige
AW: Druckbereich festlegen mit VBA ?
Ulf
Läuft die überhaupt bei dir, kann eigentlich nicht, weil ein Fehler
darin ist.
Ulf
AW: Druckbereich festlegen mit VBA ?
ralle
... also bei mir läuft es, das problem ist nur das kein Seitenumbruch berücksichtigt wird.
Gruß
ralle
;
Anzeige
Anzeige

Infobox / Tutorial

Druckbereich festlegen mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um den Druckbereich in Excel mithilfe von VBA festzulegen, kannst du die folgenden Schritte ausführen:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11 in Excel, um den Visual Basic for Applications (VBA)-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf "VBAProject (deine Datei)" und wähle Einfügen > Modul.
  3. Füge den VBA-Code ein:

    • Kopiere den folgenden Code in das Modul:
    Sub DruckbereichAnpassen()
       Dim r&, c&
       r = ActiveSheet.Cells.Find(What:="*", After:=[A1], LookIn:=2, LookAt:=2, _
           SearchDirection:=2, SearchOrder:=1).Row
       c = ActiveSheet.Cells.Find(What:="*", After:=[A1], LookIn:=2, LookAt:=2, _
           SearchDirection:=2, SearchOrder:=2).Column
       ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(r, c)).Address
    End Sub
  4. Führe das Makro aus:

    • Schließe den VBA-Editor und gehe zurück zu Excel.
    • Drücke ALT + F8, wähle DruckbereichAnpassen und klicke auf Ausführen.

Jetzt wird der Druckbereich bis zur letzten gefüllten Zelle in deinem Arbeitsblatt festgelegt.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 91": Dieser Fehler tritt auf, wenn der Suchbereich leer ist. Stelle sicher, dass dein Arbeitsblatt mindestens eine Zelle mit Inhalt hat.

  • Problem mit leeren Seiten: Wenn du Zellen im UsedRange hast, die Formeln ohne Ergebnis enthalten, können leere Blätter gedruckt werden. Verwende stattdessen den oben beschriebenen Code zur Anpassung des Druckbereichs für mehr Zuverlässigkeit.


Alternative Methoden

Falls du eine einfachere Lösung bevorzugst, kannst du den folgenden VBA-Code verwenden:

Sub druck1()
    ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address
End Sub

Dieser Code stellt den Druckbereich auf den benutzten Bereich des Arbeitsblatts ein. Beachte jedoch, dass diese Methode weniger zuverlässig ist, da sie auch leere Zellen berücksichtigen kann.


Praktische Beispiele

  1. Druckbereich für spezifische Zellen: Du kannst den Druckbereich auch manuell festlegen, indem du den Bereich angibst:

    ActiveSheet.PageSetup.PrintArea = "$A$1:$D$10"
  2. Druckbereich ausblenden: Möchtest du den Druckbereich ausblenden, kannst du diesen Befehl verwenden:

    ActiveSheet.PageSetup.PrintArea = ""

Tipps für Profis

  • Drucklinien entfernen: Wenn du nicht möchtest, dass die gestrichelten Linien im Druckbereich angezeigt werden, gehe zu Seitenlayout > Seitenränder > Benutzerdefinierte Seitenränder und deaktiviere die Option "Gestrichelte Linien".

  • Seitenumbrüche berücksichtigen: Achte darauf, dass der Druckbereich die Seitenumbrüche berücksichtigt, um ein optimales Drucklayout zu erzielen.


FAQ: Häufige Fragen

1. Wie kann ich den Druckbereich in Excel anpassen?
Du kannst den Druckbereich in Excel leicht anpassen, indem du den entsprechenden VBA-Code in einem Modul einfügst und das Makro ausführst.

2. Was sind die Nachteile der Verwendung von UsedRange?
Die Verwendung von UsedRange kann zu ungenauen Ergebnissen führen, da es auch Zellen erfasst, die keine sichtbaren Inhalte haben, aber Formeln enthalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige