Office: (Office 2010) Funktion: ISTLEER bzw. Dokumentbereich beim Druck ignorieren

Helfe beim Thema Funktion: ISTLEER bzw. Dokumentbereich beim Druck ignorieren in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Morgen zusammen, bin gerade auf euer Forum gestoßen und nachdem ich leider noch nichts passendens zu meiner Frage gefunden habe, dachte ich mir ich... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Postmann, 29. Juli 2016.

  1. Postmann Erfahrener User

    Funktion: ISTLEER bzw. Dokumentbereich beim Druck ignorieren


    Morgen zusammen,

    bin gerade auf euer Forum gestoßen und nachdem ich leider noch nichts passendens zu meiner Frage gefunden habe, dachte ich mir ich formuliere mal einen neuen Thread dazu.

    Hier mein Problem:

    Im vorliegenden Dokument würde ich gerne prüfen lassen ob z.B. die Zelle "C38" leer ist.

    Wenn JA --> Dann die nächsten 7 Zeilen beim druck ignorieren.
    Wenn Nein --> Ganz normal drucken bzw. nichts unternehmen.

    Hätte mir hierfür schon ein paar Lösungen gesucht nur bekomme ich die nich so hin wie ich es benötige. Könnt Ihr mir vll. bei meinem Denkansatz helfen?

    Lösung mittel Istleer:

    =ISTLEER(C38) ???

    Lösung mittels VBA (Leere Zeilen löschen):

    Code:
    StandardModule: Modul1
    
    Sub Drucken()
       Dim iRowL As Integer, iRow As Integer
       iRowL = Cells(Rows.Count, 3).End(xlUp).Row
       For iRow = 1 To iRowL
          If IsEmpty(Cells(iRow, 3)) Or Cells(iRow, 3).Value = 0 Then
             Rows(iRow).Hidden = True
          End If
       Next iRow
       ActiveSheet.PrintPreview
       Rows.Hidden = False
    End Sub
    
    Lösung mittels VBA (leere Zeilen nicht drucken):

    Code:
     Private Sub Workbook_BeforePrint(Cancel As Boolean) 
    FilterEmpty 
    End Sub 
    Sub FilterEmpty() 
    Dim ws As Worksheet, dt As ListObject 
    Set ws = Worksheets(1) 
    Set dt = ws.ListObjects("MeineTabelle") 
    dt.Range.AutoFilter Field:=1, Criteria1:="<>" 
    End Sub
    Die zweite VBA klingt am erfolgversprechensten, jedoch habe ich von VBA wenig Ahnung und kann es somit nicht auf meine Bedürfnisse anpassen.

    Könnt Ihr mir helfen?

    Vielen Dank

    Grüße

    Postmann
     
    Postmann, 29. Juli 2016
    #1
  2. Icebreak3r Erfahrener User
    Hi,

    angenommen dein Druck Bereich ist von A1 bis C50 (Kannst du entsprechend anpassen):



    Code:
    Private Sub Workbook_BeforePrint(Cancel As Boolean) 
    Druckbereich_festelegen
    End Sub 
    
    Sub Druckbereich_festelegen()
    Dim ws As Worksheet
    Set ws = Worksheets(1)
    
    ws.PageSetup.PrintArea = "$A$1:$C$50"
    If ws.Range("C38").Value = "" Then
        ws.PageSetup.PrintArea = "$A$1:$C38,$A$45:$C$50"
    End If
    
    End Sub
    
     
    Icebreak3r, 29. Juli 2016
    #2
  3. Postmann Erfahrener User
    Hallo Icebreaker,

    danke für den Code!

    Eine weitere Komplikation hätte ich noch dazu:

    Es gibt auf dem Tabellenblatt mehrere solcher "Prüffelder" wie z.B. "C38"

    angenommen, die gleiche Schematik solle auch bei Feld "C12" "C21" C30" usw. angewandt werden (und das auf mehreren Tabellenblättern).

    Wie sieht der Code dann aus, bzw. wie könnte ich den dann entsprechend umbauen?

    Mfg
     
    Postmann, 29. Juli 2016
    #3
  4. Icebreak3r Erfahrener User

    Funktion: ISTLEER bzw. Dokumentbereich beim Druck ignorieren

    Dazu fallen mir spontan zwei Möglichkeit ein:

    - Entweder man definiert jeden Einzelfall und fragt ihn ab,

    oder

    - man geht mit einer For-Schleife den Bereich durch. Bis zur welcher Zeile gehen denn deine Prüffelder. (Also C12 + 9 * i (wie groß wäre i))

    Je nachdem wie flexibel dass sein soll kann man auch eine Function bauen und der entsprechend Parameter übergeben.
     
    Icebreak3r, 29. Juli 2016
    #4
  5. Postmann Erfahrener User
    Danke schon mal für die Hilfsbereitschaft.

    Um dir das mal zu verdeutlichen, habe ich eine Beispielmappe hochgeladen. Alle gelben Felder sind die sog. "Prüffelder" wenn hier ein Wert steht sollen die gestrichelten Zeilen darunter gedruckt werden. Wenn im gelben Feld kein Wert steht, braucht der Bereich samt der "Kopfzeile" nicht gedruckt werden.

    Als Beispiel:

    C12 ist leer. Somit braucht der Bereich von A11 bis H19 nicht gedruckt werden usw.
    Den Anhang Stellungnahme Beispiel.xlsx betrachten

    Mfg
     
    Postmann, 29. Juli 2016
    #5
  6. Icebreak3r Erfahrener User
    Schöne wäre es, wenn deine Bereiche jeweils gleich aufgebaut wären (gleiche Anzahl an Zeilen), dann könnte ich da mit einer Schleifer durchgehen.

    Ich habe mal angenommen, dass die Prüfzellen jeweils im Abstand von 9 Zeilen zueinander liegen.

    Code:
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Druckbereich_festelegen
    End Sub
    
    Sub Druckbereich_festelegen()
    Dim ws As Worksheet
    Dim i As Long
    Set ws = Worksheets(1)
    
    i = 1
    
    For i = 1 To 7
        If ws.Range("C" & i * 9 + 3) = "" Then
            ws.Rows(i * 9 + 2 & ":" & i * 9 + 10).Hidden = True
        End If
    Next
    
    ws.Range("A11:H72").SpecialCells(xlCellTypeVisible).PrintOut Copies:=1
    
    ws.Rows("11:72").Hidden = False
    End Sub
    
     
    Icebreak3r, 29. Juli 2016
    #6
  7. Postmann Erfahrener User
    Hi schon mal tausend Dank dafür!

    Hab jetzt alles einheitlich auf 9 Zellen abstand gemacht und dein makro eingebaut.

    Beim ausführen erscheint bei mir jetzt dieser Fehler:

    Der Debugger merkiert mir dann im Makro folgendes mit gelb:

     
    Postmann, 29. Juli 2016
    #7
  8. Icebreak3r Erfahrener User

    Funktion: ISTLEER bzw. Dokumentbereich beim Druck ignorieren

    Ohja,

    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Druckbereich_festelegen
    End Sub

    Muss dann wegfallen, da ich das Drucken schon in das Makro integriert habe.
     
    Icebreak3r, 29. Juli 2016
    #8
  9. Postmann Erfahrener User
    Überragend! Vielen Dank!

    Geht beinahe tadellos! Die leeren Felder bleiben weg und nur das was auch befüllt wurde wird gedruckt.

    Liegt vielleicht an meiner Formatierung oder an dem Code aber er druckt mir jetzt auf das erste Blatt nur die Zeilen 1-10.
    Auf das zweite Blatt die einzelnen Prüffelder samt anhang (passt auch so!)
    Auf das dritte Blatt dann die Zeilen 73-77.

    Auf jeden Blatt ist jetzt eig nur knapp 1/3 bedruckt. Daher die Frage, ob man das auch so steuer kann, das er es auf den kleinstmöglich Platz zusammen zieht?

    Grüße
     
    Postmann, 29. Juli 2016
    #9
  10. Icebreak3r Erfahrener User
    Hey,
    Ich drucke über das Makro aus (Makro ausführen führt zum Druck). Bei mir druckt er dann nur 1 Seite mit dem Bereich A1-H72 ohen die entsprechend ausgeblendeten Zeilen.

    Zum ausprobieren kannst du mal

    ws.Range("A11:H72").SpecialCells(xlCellTypeVisible).PrintOut Copies:=1 | Hier steht auch der Druckbereich drin (A11:H72) den kannst du natürlich nach Belieben anpassen

    auskommentieren ( ' davor packen)

    und
    ws.Range("A11:H72").SpecialCells(xlCellTypeVisible).PrintPreview
    einfügen, dann wird dir eine Druckvorschau angezeigt (Kannst du auch da lassen wenn du willst)

    Weise der Schaltfläche in der Datei einfach mein Makro zu und speichere sie als .xlsm ab. Dann druckst du nicht mehr über den Druckendialog, sondern am besten über das Makro.

    Wenn sich die Anzahl der Blöcke erhöht kannst du einfach die For Schleife statt bis 7 entsprechend höher laufen lassen.
     
    Zuletzt bearbeitet: 29. Juli 2016
    Icebreak3r, 29. Juli 2016
    #10
  11. Postmann Erfahrener User
    Hey,

    also ich hab da jetzt mal das entpsrechend verändert. Den Bereich kann man ja relativ leicht variieren. Die Druckvorschau klappt auch wie gewünscht. Das Problem, dass er mir nach wie vor nur knapp 1/3 das Blattes bedruckt bleibt. Die Formel sagtest du ja funktioniert bei dir, kann es dann sein, dass es evtl. ein Formatierungsproblem in Excel gibt und daher so viel leerer Platz nicht bedruckt wird?
     
    Postmann, 31. Juli 2016
    #11
  12. Icebreak3r Erfahrener User
    Ich war eine Woche im Urlaub, weshalb ich mich nicht melden konnte.

    Ist denn auch in der Druckvorschau nur 1/3 des Blattes bedruckt?
     
    Icebreak3r, 8. August 2016
    #12
  13. Postmann Erfahrener User

    Funktion: ISTLEER bzw. Dokumentbereich beim Druck ignorieren

    Hallo,

    kein problem. Es sei dir vergönnt :-)

    Ja, in der Druckvorschau macht er es genauso. Also er bedruckt lediglich maximal 1/3 des platzes am Blatt sofern nicht alle Blöcke ohne "Leerblöcke" gedruckt werden sollen.

    Heißt: Ich will Block 1-7 ausdrucken = klappt tadellos
    Will ich aber Block 1;3;6 ausdrucken dann macht er immer nur einen Block pro Seite
     
    Postmann, 8. August 2016
    #13
  14. Postmann Erfahrener User
    Beispieldatei

    Anbei mal eine Beispieldatei ohne Formeln.

    Habe also von Hand mal den Block 1 & Block 4 befüllt.

    Wenn ich jetzt auf drucken gehen zeigt er mir in der Vorschau und später dann auch auf dem Druck alles auf 3 Seiten an.

    Findest du den Fehler?

    Den Anhang Stellungnahme E+1 3376_TEST.xlsm betrachten


    Danke
     
    Postmann, 8. August 2016
    #14
  15. Icebreak3r Erfahrener User
    Hey,

    habe bei mir jetzt auch den gleichen "Fehler".

    Ersetze

    ws.Range("A11:H72").SpecialCells(xlCellTypeVisible).Printview

    mit

    ws.Range("A11:H72").PrintPreview

    dann ging es bei mir, ich weiß allerdings nicht genau, woran es liegt.
     
    Icebreak3r, 8. August 2016
    #15
Thema:

Funktion: ISTLEER bzw. Dokumentbereich beim Druck ignorieren

Die Seite wird geladen...
  1. Funktion: ISTLEER bzw. Dokumentbereich beim Druck ignorieren - Similar Threads - Funktion ISTLEER Dokumentbereich

  2. Probleme mit bedingter Formatierung

    in Microsoft Excel Hilfe
    Probleme mit bedingter Formatierung: Hallo ihr Lieben, folgende Herausforderung: Ich möchte die Formatierung des Wertes in B7 (bzw. auch alle weiteren Werte in Spalte B) nach folgenden Bedingungen anpassen: 1. WENN C7<0,05 DANN...
  3. neue Filter Funktion

    in Microsoft Excel Hilfe
    neue Filter Funktion: Hallo zusammen, wieder habe ich für meine Nebenkostenabrechnung (privat) ein paar Änderungen gemacht. Soweit so gut Nun habe ich , für mich, die neue Filter Funktion entdeckt. Wow ist richtig...
  4. Zahlenreihe addieren

    in Microsoft Excel Hilfe
    Zahlenreihe addieren: Hallo, ich habe folgende Zahlenreihe: -5; -9; -11; 35; -2; -4; -8; 33; -3; -6; -9 Jetzt würde ich gerne mit einer Funktion nur die Zahlen von rechts nach links, ab dem letzten Eintrag -9,...
  5. DropDown Auswahl mit 2 Funktionen

    in Microsoft Excel Hilfe
    DropDown Auswahl mit 2 Funktionen: Liebes Forum-Team, ich habe eine Tabelle mit Kundendaten, die von mehreren Mitarbeitern befüllt wird. Ich möchte, dass der Mitarbeiter seinen Namen im DropDown Auswahl auswählt, Aber im...
  6. ISOKalenderwoche Powerquery

    in Microsoft Excel Hilfe
    ISOKalenderwoche Powerquery: Hallo Ich möchte in einer Powerquery Abfrage in einer benutzerdefinierten Spalte die Kalenderwoche errechnen, nur schaffe ich das leider so überhaupt nicht. Als normale Excelformel kein Problem...
  7. Bei meinem Outlook (new) fehlen wichtige Funktionen!

    in Microsoft Outlook Hilfe
    Bei meinem Outlook (new) fehlen wichtige Funktionen!: Hallo, wie der Titel bereits andeutet, habe ich Probleme mit Outlook. Zum Beispiel ist es mir nicht möglich, Add-ins zu installieren. Es gibt keinen Button dafür, und auch wenn ich über die...
  8. IsEmpty-Funktion (IstLeer)

    in Microsoft Access Tutorials
    IsEmpty-Funktion (IstLeer): IsEmpty-Funktion (IstLeer) Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden