Microsoft Excel

Herbers Excel/VBA-Archiv

Druckbereich an letzter sichtbaren Zeile ausrichte | Herbers Excel-Forum


Betrifft: Druckbereich an letzter sichtbaren Zeile ausrichte von: Oddie1954
Geschrieben am: 22.07.2012 21:46:30

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

  

Betrifft: AW: Druckbereich an letzter sichtbaren Zeile ausrichte von: Josef Ehrensberger
Geschrieben am: 22.07.2012 22:43:44


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 »



  

Betrifft: AW: Druckbereich an letzter sichtbaren Zeile ausrichte von: Oddie1954
Geschrieben am: 23.07.2012 02:29:20

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.


  

Betrifft: von Rudi ,... von: Matze,Matthias
Geschrieben am: 23.07.2012 13:04:17

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.

Betrifft: AW: automatischer Druckbereich
von: Rudi Maintaire
Geschrieben am: 27.06.2012 13:29:17

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


  

Betrifft: AW: von Rudi ,... von: Oddie1954
Geschrieben am: 23.07.2012 15:41:43

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.


  

Betrifft: AW: von Rudi ,... von: fcs
Geschrieben am: 23.07.2012 17:17:55

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



  

Betrifft: AW: von Rudi ,... von: Oddie1954
Geschrieben am: 27.07.2012 17:57:15

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)


Beiträge aus den Excel-Beispielen zum Thema "Druckbereich an letzter sichtbaren Zeile ausrichte"