Office: (Office 2016) Ausgeblendete Zeilen für Druck einblenden

Helfe beim Thema Ausgeblendete Zeilen für Druck einblenden in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich möchte ausgeblendete Zeilen für den Druck (über STRG+P) wieder einblenden, und anschließend wieder ausblenden. Das Einblenden... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von phyton2706, 29. August 2018.

  1. phyton2706 Erfahrener User

    Ausgeblendete Zeilen für Druck einblenden


    Hallo zusammen,

    ich möchte ausgeblendete Zeilen für den Druck (über STRG+P) wieder einblenden, und anschließend wieder ausblenden.

    Das Einblenden klappt mit folgendem Makro sehr gut:
    Code:
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    
        ActiveSheet.Cells.EntireRow.Hidden = False
    
    End Sub
    Um die Zeilen wieder einzubelnden, habe ich den Code wie folgt erweitert:
    Code:
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        ActiveSheet.Cells.EntireRow.Hidden = False
    
        Rows("1:5").EntireRow.Hidden = True
    
    End Sub
    Das klappt leider nicht wie gewünscht, da für den Druck die Zellen nicht eingeblendet werden.
    Wenn ich dann den Code so erweitere:
    Code:
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        ActiveSheet.Cells.EntireRow.Hidden = False
       
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        
        Rows("1:5").EntireRow.Hidden = True
    
    End Sub
    Werden die Zeilen für den Druck eingeblendet. Allerdings wird der Druck dann doppelt angestoßen...

    Ein
    Code:
    Application.Wait (2000)
    anstelle des
    Code:
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
    hat die Zeilen für den Druck nicht eingeblendet.

    Hat jemand eine Idee, wie ich das am geschicktesten lösen kann?
     
    phyton2706, 29. August 2018
    #1
  2. Lutz Fricke Erfahrener User
    Hallo Phyton2706,

    versuch's mal mit:
    Code:
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        
        Cancel = True
        
        ActiveSheet.Cells.EntireRow.Hidden = False
       
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        
        Rows("1:5").EntireRow.Hidden = True
    
    End Sub
    Mit Cancel = True solltest Du die nachfolgende Durchführung des eigentlichen Befehls unterbinden können.

    Gruß,
    Lutz
     
    Lutz Fricke, 10. September 2018
    #2
  3. phyton2706 Erfahrener User
    Hallo Lutz,

    danke für Deine Antwort, aber sol klappt es leider auch nicht...
    Die ausgeblendeten Zeilen werden leider für den Druck nicht eingeblendet.
     
    phyton2706, 10. September 2018
    #3
  4. Lutz Fricke Erfahrener User

    Ausgeblendete Zeilen für Druck einblenden

    So läuft's

    Code:
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        
        Cancel = True
        
        ActiveSheet.Cells.EntireRow.Hidden = False
       
        Application.EnableEvents = False
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        pplication.EnableEvents = True
        
        Rows("1:5").EntireRow.Hidden = True
    
    End Sub
    Hattest Du dein Makro mal im Einzelschrittmodus laufen lassen?
    Da hättest Du gesehen, dass es beim Druckbefehl (natürlich) Dein Makro neu startet und damit in eine Endlosbearbeitung läuft.
     
    Lutz Fricke, 10. September 2018
    #4
  5. phyton2706 Erfahrener User
    Hallo Lutz,
    leider habe weis ich nicht, wie man ein Makro im Einzelschritt laufen lässt, deswegen habe ich es so nicht durchlaufen lassen...

    Ich habe Dein Makro nun eingebunden, aber werden die Zeilen vor dem Druck nicht eingeblendet.

    MfG
    Frank Schmidt
     
    phyton2706, 10. September 2018
    #5
  6. Exl121150 Erfahrener User
    Hallo Phyton2706,

    sobald du die Tastenkombination Strg+P drückst, passiert Folgendes:
    1. Es wird von Excel die Druckvoransicht aufgerufen, noch bevor die Callback-Routine für das "Workbook_BeforePrint"-Ereignis aufgerufen wird. Das hat zur Folge, dass in der gezeigten Druckvoransicht die Zeilen 1-5 noch immer ausgeblendet sind.
    2. Gibt man dann den Druckbefehl (Klick auf Button "Drucken"), so wird erst jetzt die Callback-Routine "Workbook_BeforePrint" aufgerufen. Die Bezeichnung für diese Routine stimmt, denn zu diesem Zeitpunkt wird tatsächlich noch nichts gedruckt.
    3. Geht man jetzt vom Makro aus, das Lutz Fricke bereitgestellt hat, so geschieht dort Folgendes:
      - Es wird dort die "Cancel"-Argumentvariable auf "True" gestellt (was bewirkt, dass nach Ablauf dieses Makros der Excelduck, der durch das Strg+P angestoßen wurde, abgebrochen wird).
      - Die nächste Makroanweisung blendet alle ausgeblendeten Zeilen im aktiven Arbeitsblatt ein.
      - Die nächste Makroanweisung stößt dann den Druck der im aktiven Fenster ausgewählten Blätter an. Das hat aber zur Folge, dass wieder ein "Workbook_BeforePrint"-Ereignis ausgelöst wird, sodass dadurch eine Mehrfachdruck bewirkt wird.
      - In der abschließenden Anweisung werden die Zeilen 1-5 des aktiven Blattes wieder ausgeblendet.
      - Das Makro wird beendet und da das Cancel-Argument, das an Excel zurückgegeben wird, den Wert "True" hat, wird ab hier nichts mehr gedruckt durch Excel
    Damit der unangenehme Effekt, dass die Callback-Routine "Workbook_BeforePrint" mehrfach aufgerufen wird, nicht eintritt, schalte ich mit den zusätzlichen Befehlen beim erstmaligen Aufruf dieser Routine die Ereignisbehandlung innerhalb der Excel-Anwendung aus.
    Dadurch wird beim Aufruf des "PrintOut" auch kein weiteres "BeforePrint" aufgerufen.
    Vor Verlassen des Makros schalte ich die Excel-Eventbehandlung wieder ein.

    Als einziger Wermutstropfen bleibt auch bei mir: Dass in der Druckvoransicht unmittelbar nach dem Strg+P die Zeilen immer noch ausgeblendet erscheinen, obwohl sie hinterher durch den Drucker ausgedruckt werden und nach dem Druck wieder ausgeblendet sind.

    Code:
    Private Sub Workbook_BeforePrint(Cancel As Boolean)
        Dim bEvents As Boolean
        
        bEvents = Application.EnableEvents
        Application.EnableEvents = False
        
        Cancel = True
        ActiveSheet.Cells.EntireRow.Hidden = False
        ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
        ActiveSheet.Rows("1:5").EntireRow.Hidden = True
        
        Application.EnableEvents = bEvents
    
    End Sub
    
     
    Exl121150, 10. September 2018
    #6
  7. Exl121150 Erfahrener User
    Hallo,

    ein Nachtrag zu meinem vorigen Posting:
    Ruft man die Druckvoransicht folgendermaße auf:
    Code:
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, [B][COLOR="#0000CD"]PreView:=True[/COLOR][/B]
    
    wird sie natürlich korrekt (wie erwartet) angezeigt mit allen vorhandenen Zeilen.
     
    Exl121150, 10. September 2018
    #7
  8. phyton2706 Erfahrener User

    Ausgeblendete Zeilen für Druck einblenden

    Hallo Anton,

    vielen Dank für Deine ausführliche Erklärung.

    Was das Makro im Einzelnen so treibt, hatte ich schon verstanden, nur hat es bis eben bei mir einfach nicht funktioniert.

    Das die Druckvorschau ohne die eingeblendeten Zeilen dargestellt wird, stört ich nicht weiter. Hauptsache sie werden mit gedruckt.
    Ich habe nun beide Varianten Deines Makros eingefügt, und nun klappt es auch mit dem Ausdruck.

    Spaßeshalber habe ich auch noch mal das Makro von Lutz eingefügt, mit dem es nun komischerweise auch klappt...!
    Versteh einer die Office-Welt...

    Auf jeden Fall bedanke ich mich bei euch Beiden für eure Hilfe!

    MfG
    Frank
     
    phyton2706, 10. September 2018
    #8
  9. Exl121150 Erfahrener User
    Hallo Frank,

    du musst natürlich vorsichtig sein, wenn du eine VBA-Anweisung wie zB.
    Application.EnableEvents = False
    einsetzt. Dein Makro muss unbedingt gewährleisten, dass auch wieder der Befehl
    Application.EnableEvents = True
    ausgeführt wird, sodass die Excel'sche Ereignisbehandlung wieder scharf geschaltet ist.

    Dass das Makro von Lutz plötzlich auch korrekt funktioniert, hört sich beinahe so an, dass das "Application.EnableEvents" auf "False" steht.
    Du kannst den Status dieser Eigenschaft im Direktbereich-Fenster des VBA-Editors überprüfen, indem du dort eingibst:
    Code:
    ? Application.EnableEvents
    
    Als Resultat bekommst du in der nächsten Zeile entweder "True" (dann ist alles ok) oder "False", dann musst du unbedingt noch eingeben:
    Code:
    Application.EnableEvents = True
    
    Denn wenn das Excel'sche Ereignisbehandlungssystem abgeschaltet ist, wirst du auf Dauer keine rechte Freude bei der Arbeit in den Arbeitsblättern haben.
     
    Exl121150, 10. September 2018
    #9
  10. Lutz Fricke Erfahrener User
    Hallo Phyton,

    Anton hat ja alles schon perfekt erklärt (und ich habe auch noch was gelernt :) ).

    Noch als Ergänzung, den Einzelschrittmodus kannst du im Editor starten. Einfach Cursor in dem Makro positionieren und F8 drücken. Du siehst nun gelb hinterlegt die nächste auszuführende Zeile. Mit F8 ausführen und sehen, was passiert...
    Das Problem hierbei ist allerdings, dass Du damit keine Callback-Routinen starten kannst. Hier kannst Du im Editor durch Klicken vor die erste Befehlszeile eine Haltpunkt setzen, Routine (z.B. durch Druckbefehl) starten und dann weiter wie oben.

    Viel Spaß beim Probieren.

    Gruß,
    Lutz
     
    Lutz Fricke, 10. September 2018
    #10
Thema:

Ausgeblendete Zeilen für Druck einblenden

Die Seite wird geladen...
  1. Ausgeblendete Zeilen für Druck einblenden - Similar Threads - Ausgeblendete Zeilen Druck

  2. ersten 1200 Zeilen einer großen Datei sind ausgeblendet

    in Microsoft Excel Hilfe
    ersten 1200 Zeilen einer großen Datei sind ausgeblendet: Ich habe eine große Excel-Datei mit mehr als 200 Zeilen. Aus mir unbekanntem Grund werden die ersten 1247 Zeilen nicht angezeigt. Wie kann ich auch die ersten Zeilen sichtbar machen?? Gruß
  3. ausgeblendete Zeilen nicht berücksichtigen

    in Microsoft Word Hilfe
    ausgeblendete Zeilen nicht berücksichtigen: Hallo Ihr Wissenden! Mein Chef meint ich soll mich mal bei den bestehenden Macros schlau machen und diese vom Vorgänger etwas verändern. Die Aufgabe ist dabei nun, bei der Erstellung eines...
  4. [VBA] Letzte zelle (Ignorieren von Filter und ausgeblendete Zeilen)

    in Microsoft Excel Hilfe
    [VBA] Letzte zelle (Ignorieren von Filter und ausgeblendete Zeilen): Hallo miteinander, ich ermittle die Letzte Zelle in einer Externe Datei. Das klappt auch, solange nicht die letzten Zeilen ausgeblendet sind, wie kann ich das erreichend das auch die...
  5. Ausgeblendete Zeilen nicht kopieren Makro

    in Microsoft Excel Hilfe
    Ausgeblendete Zeilen nicht kopieren Makro: Hallo, Ich habe folgendes Makro in meine Tabelle eingefügt und das funktioniert soweit auch, ich würde aber gern dafür sorgen, dass ausgeblendete Zeilen nicht in die Übersicht kopiert werden. Wie...
  6. Ausgeblendete Werte in berechnetem Feld berücksichtigen

    in Microsoft Word Hilfe
    Ausgeblendete Werte in berechnetem Feld berücksichtigen: Guten Morgen. Ich stehe an folgendem Problem an: Seit der Umstellung von Office 2010 auf Office 2016 zickt Word bei einer Berechnung einer Tabellenzeile. Die Formel im Feld rechts aussen in...
  7. Ausgeblendete Zeilen

    in Microsoft Excel Hilfe
    Ausgeblendete Zeilen: Hallo zusammen ich habe eine Excelmappe mit 2 Blättern. Blatt 1 = Rg. Blatt 2 = lfsch. Auf Blatt 1 habe ich von Zeile 24 bis Zeile 80 Artikel erfasst. diese Artikel sind ausgeblendet (A24...
  8. Zeilen in Excel nicht sichtbar (nicht ausgeblendet)

    in Microsoft Excel Hilfe
    Zeilen in Excel nicht sichtbar (nicht ausgeblendet): Hallo zusammen, ich habe in Excel ein Phänomen, finde aber nirgends eine Lösung. Ich habe in verschiedenen Dateien das Problem, dass Nutzer irgendwo sehr weit unten in der Tabelle Änderungen...
  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