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

Forumthread: Druckbereich an letzter sichtbaren Zeile ausrichte

Druckbereich an letzter sichtbaren Zeile ausrichte
Oddie1954
Hallo Excelgemeinde, ich such mir gerade die Augen eckig. Für Euch bestimmt kein großes Problem: _
Ich habe ein kleines Kassenbuch, das die Bestände in den oberen Zeilen darstellt. Nach Unten _ ab Zeile 10 beginnt dann die Möglichkeit die Einnahme- oder die Ausgabespalte etc. zu füllen. Nach Unten hin sind die weiteren Zellen (Wenn leer) mit "" leer gehalten. Allerdings sind diese dann nicht mehr leer, sondern beinhalten ja die Formeln. Ich möchte jedoch den Ausdruck bis zur letzten Zeile in der ein Wert steht ausdrucken. Ich habs damit versucht:

Private Sub Workbook_BeforePrint(Cancel As Boolean)
ActiveSheet.PageSetup.PrintArea = "$A$1:$H" & ActiveSheet.UsedRange.SpecialCells( _
xlCellTypeLastCell).Row
End Sub

Da werden aber wieder alle Seiten ausgedruckt. Weiß jemand wie ich die letzte Zelle mit Wert (und nicht mit der Formel, die ja eigentlich bereits einen Wert ergibt) ermittle und in den Druckbereich eintrage?
Im Voraus schon mal lieben Dank
Anzeige

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

Betreff
Benutzer
Anzeige
AW: Druckbereich an letzter sichtbaren Zeile ausrichte
22.07.2012 22:43:44
Josef

Hallo oddie,
das geht auch ohne VBA.
Ribbon "Formeln" > Namens Manager > Neu > Name: "Druckbereich" > Bezieht sich auf: "=Tabelle1!$A$1:INDEX(Tabelle1!$H:$H;ANZAHL(Tabelle1!$A:$A))" > Ok
Der Namen und die Formel natürlich ohne die "" eingeben!

« Gruß Sepp »

Anzeige
AW: Druckbereich an letzter sichtbaren Zeile ausrichte
23.07.2012 02:29:20
Oddie1954
Hallo Sepp,
danke für die schnelle Antwort. Ich habe es mit deiner Definition versucht. Leider wird mir hier nur die erste Zeile ausgedruckt. Zur Verdeutlichung, was ich meine habe ich das erste Kassenblatt einmal hochgeladen:
https://www.herber.de/bbs/user/81126.xlsx
DA in der Arbeitsmappe aber noch andere Tabellen mit ganz anderen Formaten vorhanden sind, dachte ich mir, per makro den jeweils angepassten Druckbereich zuweisen zu können. In dem hochgeladenen Blatt sind leere Zellen mittels Formel ausgeblendet, also sind diese nicht wirklich leer. Gedruckt werden soll in diesem Fall bis Zeile 12.
Anzeige
von Rudi ,...
23.07.2012 13:04:17
Rudi
Hallo Oldie1954, Hallo Excelfreunde,
hier ein anderer Weg, allerdings hab ich versucht das umzustellen und bastel hier seit geraumer Zeit daran herum,
leider ohne Erfolg! Irgendwie werden immer die "Formeln" mit gezählt obwohl Anzahl nur Werte zählen sollte.
Hallo,
1.Name: <b>letzteZeile</b>, Bezug: =VERWEIS(2;1/((Tabelle1!$A$1:$A$1000>0)*(Tabelle1!$A$1:$A$1000<>""));ZEILE(Tabelle1!$A:$A))
2.Name: Tabelle1!Druckbereich, Bezug: =Tabelle1!$A$1:INDEX(Tabelle1!$Y:$Y;letzteZeile)
Zu Tabelle1!Druckbereich nimmt er nicht,wegen dem "!"
auch Rudis Vorschlag und Lösungstipp will bei mir nicht funktionieren, also liebe Profies, bitte um Unterstützung.
PS.: Oldie , wenn du weitere Fragen hast dann mach einen HAKEN bei "Frage noch offen"
Gruß Matze
Anzeige
AW: von Rudi ,...
23.07.2012 15:41:43
Rudi
Hallo Rudi,
danke für den Tipp mit dem HAken bei Frage noch offen. Bin in dieser Hinsicht eher noch Newbie und in meinem Alter sollte man eigentlich schon lesen können. Sorry hierfür, werde versuchen in Zukunft daran denken.
Gerade kommt mir so eine Idee aus frühen Excel Zeiten:
Wie sieht es aus, wenn ich eine ausgeblendete Spalte mitlaufen lasse und die Zellen dieser Spalte per bedingter Formatierung einen Wert zugewiesen bekommen? Ist bestimmt nicht die schönste Möglichkeit, aber könnte doch mit meinem Makro funktionieren.
Anzeige
AW: von Rudi ,...
23.07.2012 17:17:55
Rudi
Hallo Oldie,
mit bedingter Formatierung kommst du hier auch nicht weiter, da keine Zeilen ausgeblendet werden können.
Die Formel-Lösung für den Druckbereich des Tabellenblatts ist möglich. Dazu muss du erst einmal den Druckbereich manuell beliebig festlegen, damit der Name im Namensmanager angezeigt wird. Danach kannst du die erforderliche Formel eingeben. Die Formellösung ist aber problematisch. Sobald du unter Seite-Einrichten Einstellungen machst kann die Formel wieder durch die Bereichsadresse ersetzt werden und der Druckbereich ist dann wieder fix.
Beste Lösung ist ein Makro, das automatisch ausgeführt wird vor dem Drucken/Bildvorschau (Ereignismakro Workbook_BeforePrint) oder das du in dein Druckenmakro integrierst.
Gruß
Franz
Sub Drucken() 'makro zum Drucken inkl. Druckbereichsanpassung
Dim Zeile As Long, wks As Worksheet
Set wks = ActiveSheet
With wks
Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row 'Letzte Zeile mit Daten in Spalte A
'Letzte Zeile mit nummerischem Wert finden
Do Until IsNumeric(.Cells(Zeile, 1).Text) Or Zeile = 10
Zeile = Zeile - 1
Loop
.PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(Zeile, 8)).Address(ReferenceStyle:=xlA1)
.PrintOut Preview:=True
End With
End Sub

Anzeige
AW: von Rudi ,...
27.07.2012 17:57:15
Rudi
Hallo zusammen und erst einmal herzlichen Dank für die Hilfe. Da ich die letzten Tage im Krankenhaus war, konnte ich leider nicht so schnell antworten, aber das Makro von Franz funktioniert bestens. Damit ist mir sehr viel weiter geholfen.
Viele Grüße Aus Osnabrück
Roland (der Oddie)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Druckbereich an der letzten sichtbaren Zeile ausrichten


Schritt-für-Schritt-Anleitung

  1. Manuellen Druckbereich festlegen:

    • Öffne dein Excel-Dokument und gehe zum Tab "Seitenlayout".
    • Klicke auf "Druckbereich" und wähle "Druckbereich festlegen". Wähle den Bereich, den du drucken möchtest.
  2. Formel für dynamischen Druckbereich:

    • Navigiere zum Tab "Formeln" und wähle den "Namensmanager".
    • Klicke auf "Neu" und gib Folgendes ein:
      • Name: Druckbereich
      • Bezieht sich auf:
        =Tabelle1!$A$1:INDEX(Tabelle1!$H:$H;ANZAHL(Tabelle1!$A:$A))
    • Klicke auf "OK".
  3. Druckbereich automatisch anpassen:

    • Du kannst auch ein Makro verwenden, um den Druckbereich automatisch anzupassen. Füge folgenden VBA-Code in dein Modul ein:
      Sub Drucken()
      Dim Zeile As Long, wks As Worksheet
      Set wks = ActiveSheet
      With wks
         Zeile = .Cells(.Rows.Count, 1).End(xlUp).Row
         Do Until IsNumeric(.Cells(Zeile, 1).Text) Or Zeile = 10
             Zeile = Zeile - 1
         Loop
         .PageSetup.PrintArea = .Range(.Cells(1, 1), .Cells(Zeile, 8)).Address(ReferenceStyle:=xlA1)
         .PrintOut Preview:=True
      End With
      End Sub
  4. Drucken:

    • Führe das Makro aus oder drucke direkt über den Menüpunkt "Datei" > "Drucken".

Häufige Fehler und Lösungen

  • Excel druckt nicht alles: Stelle sicher, dass der Druckbereich korrekt festgelegt ist. Überprüfe die Namensdefinition im Namensmanager, um sicherzustellen, dass sie die richtigen Zellen umfasst.

  • Druckbereich wird nicht aktualisiert: Wenn du Änderungen an deiner Tabelle vornimmst, stelle sicher, dass das Makro vor dem Drucken ausgeführt wird, um den Druckbereich automatisch anzupassen.

  • Excel drucklinien nicht anzeigen: Gehe zu "Seitenlayout" und deaktiviere die Option "Drucklinien anzeigen".


Alternative Methoden

  • Bedingte Formatierung: Du kannst eine ausgeblendete Spalte mit bedingter Formatierung verwenden, um Werte zuzuweisen, die für den Druckbereich herangezogen werden. Dies könnte eine Möglichkeit sein, um sicherzustellen, dass nur die relevanten Daten gedruckt werden.

  • Druckbereich ohne VBA: Verwende die Formel im Namensmanager, um den Druckbereich festzulegen, ohne ein Makro zu verwenden. Dies ist eine einfache Lösung für die meisten Benutzer.


Praktische Beispiele

  • Kassenblatt zum Ausdrucken: Wenn dein Kassenblatt Wert in den oberen Zeilen hat, stelle sicher, dass du die Formel korrekt anwendest, um den Druckbereich bis zur letzten gefüllten Zeile festzulegen.

  • Leere Zellen: Wenn deine Tabelle leere Zellen enthält, die durch Formeln gefüllt sind, sollten diese nicht in den Druckbereich einfließen. Verwende die Funktion ANZAHL, um nur die tatsächlich gefüllten Zellen zu zählen.


Tipps für Profis

  • Dynamischer Druckbereich: Nutze die Möglichkeit, den Druckbereich dynamisch anzupassen, um Zeit zu sparen, besonders wenn du häufig druckst.

  • Erste Zeile immer drucken: Wenn du die erste Zeile (z.B. Kopfzeilen) immer drucken möchtest, kannst du diese in den Druckoptionen unter "Seitenlayout" > "Drucktitel" festlegen.

  • Druckbereich nur wenn Zelle ausgefüllt: Verwende die IF-Funktion in Kombination mit der INDEX-Funktion, um sicherzustellen, dass nur die Daten gedruckt werden, wenn die Zelle tatsächlich einen Wert enthält.


FAQ: Häufige Fragen

1. Wie kann ich den Druckbereich automatisch anpassen? Du kannst ein VBA-Makro verwenden, das vor dem Drucken ausgeführt wird, um den Druckbereich automatisch festzulegen.

2. Was mache ich, wenn Excel nur die erste Zeile druckt? Stelle sicher, dass deine Formel im Namensmanager korrekt ist und dass die Zellen, die du drucken möchtest, tatsächlich Werte enthalten.

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