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

Forumthread: Druckbereich per VBA festlegen

Druckbereich per VBA festlegen
reinhardt
Hallo,
ich möchte jeweils per Button den Druckbereich einer Liste oder einer Übersicht im gleichen Tabellenblatt festlegen und dann ausdrucken.
Bei der Liste (A: D )muß die letzte Eintragung in Spalte C gesucht werden, jedoch hat die Liste 4 Spalten.
Bei der Liste (F:M) muß die letzte Eintragung in Spalte F gesucht werden, jedoch hat die Liste 8 Spalten.
Meine kläglichen versuche ergeben nur eine Fehlermeldung.
Wer kann helfen?
Gruß Reinhardt.
Sub Print_Liste()
Sheets("Liste").Select
Range("C" & Cells(Rows.Count, 3).End(xlUp).Row).Activate
x = ActiveCell.Offset(0, 1).Select
ActiveSheet.PageSetup.PrintArea = "$A$1:$D$" & x
' ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
'Range("A1").Select
End Sub

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Druckbereich per VBA festlegen
11.12.2009 08:41:43
Hajo_Zi
Hallo Reinhard,
ich sehe in Deine Code nicht die Unterscheidung zwischen Liste A bis D und F bis M. Wie erfolgt die?

AW: Druckbereich per VBA festlegen
reinhardt
Hallo Hajo,
Ich habe zwei Buttons, und zwei Sub's.
Mir würde schon ein Tip helfen, damit es bei der o.a Sub PRINT_Liste klappt.
Gruß Reinhardt.
Anzeige
AW: Druckbereich per VBA festlegen
11.12.2009 09:02:11
Hajo_Zi
Hallo Reinhard,
Option Explicit
Sub Print_Liste_A_D()
Dim LoLetzte As Long
' letzter Eintrag in Spalte C
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row, Rows. _
Count)
Sheets("Liste").PageSetup.PrintArea = "$A$1:$D$" & LoLetzte
End Sub
Hinweise zu select usw.
Gruß Hajo
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Druckbereich per VBA festlegen in Excel


Schritt-für-Schritt-Anleitung

Um den Druckbereich in Excel 2010 per VBA festzulegen, kannst du die folgende Schritt-für-Schritt-Anleitung nutzen:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Gehe zu Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Sub Print_Liste_A_D()
        Dim LoLetzte As Long
        ' letzter Eintrag in Spalte C
        LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 3)), Cells(Rows.Count, 3).End(xlUp).Row, Rows.Count)
        Sheets("Liste").PageSetup.PrintArea = "$A$1:$D$" & LoLetzte
    End Sub
    
    Sub Print_Liste_F_M()
        Dim LoLetzte As Long
        ' letzter Eintrag in Spalte F
        LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 6)), Cells(Rows.Count, 6).End(xlUp).Row, Rows.Count)
        Sheets("Liste").PageSetup.PrintArea = "$F$1:$M$" & LoLetzte
    End Sub
  4. Speichere das Modul und schließe den VBA-Editor.

  5. Erstelle Buttons auf deinem Arbeitsblatt, um die Subroutinen auszuführen. Weise jedem Button die entsprechende Sub zu.


Häufige Fehler und Lösungen

  • Fehlermeldung bei der Ausführung:

    • Stelle sicher, dass die Blattnamen korrekt sind. Du kannst Sheets("Liste") anpassen, falls dein Blatt anders heißt.
  • Druckbereich wird nicht richtig festgelegt:

    • Überprüfe die Spaltennummern in deinem VBA-Code. Stelle sicher, dass du die richtige letzte Zeile in der entsprechenden Spalte suchst.
  • Excel-Dokument wird nicht gedruckt:

    • Stelle sicher, dass die Zeile mit ActiveWindow.SelectedSheets.PrintOut nicht auskommentiert ist, wenn du automatisch drucken möchtest.

Alternative Methoden

Falls du den Druckbereich nicht über VBA festlegen möchtest, kannst du dies auch manuell tun:

  1. Markiere den gewünschten Bereich auf deinem Arbeitsblatt.
  2. Gehe zu Seitenlayout > Druckbereich > Druckbereich festlegen.
  3. Um einen Druckbereich auszublenden, wähle Druckbereich > Druckbereich löschen.

Für häufige Aufgaben kannst du auch eine Tastenkombination nutzen, um den Druckbereich festzulegen.


Praktische Beispiele

Hier sind zwei praktische Beispiele, wie du den Druckbereich per VBA festlegen kannst:

  1. Druckbereich für die Liste A:D:

    Sub Print_Liste_A_D()
        Dim LoLetzte As Long
        LoLetzte = Cells(Rows.Count, 3).End(xlUp).Row
        Sheets("Liste").PageSetup.PrintArea = "$A$1:$D$" & LoLetzte
    End Sub
  2. Druckbereich für die Liste F:M:

    Sub Print_Liste_F_M()
        Dim LoLetzte As Long
        LoLetzte = Cells(Rows.Count, 6).End(xlUp).Row
        Sheets("Liste").PageSetup.PrintArea = "$F$1:$M$" & LoLetzte
    End Sub

Tipps für Profis

  • Nutze Option Explicit, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler zu vermeiden.
  • Teste deinen Code schrittweise, um sicherzustellen, dass jeder Teil korrekt funktioniert.
  • Überlege, ob du den Druckbereich dynamisch anpassen möchtest, z.B. durch Benutzerinteraktion oder Auswahl.

FAQ: Häufige Fragen

1. Wie kann ich den Druckbereich per Tastenkombination festlegen?
Du kannst eine benutzerdefinierte Tastenkombination erstellen, indem du ein Makro auf eine Tastenkombination in Excel zuweist.

2. Was passiert, wenn der Druckbereich zu groß ist?
Wenn der Druckbereich zu groß ist, wird Excel möglicherweise eine Fehlermeldung anzeigen. Achte darauf, dass du nur die benötigten Zellen im Druckbereich einfügst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige