Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
924to928
924to928
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

bestimmte Zeilen nicht drucken

bestimmte Zeilen nicht drucken
11.11.2007 17:49:00
Jens
Hallo Leute,
ich versuche, den druckbaren Bereich eines Blattes mit PageSetup.PrintArea festzulegen. Dabei definiere ich einen nicht-zusammenhängenden Bereich (besteht aus 2 Teilen), einige Zeilen zwischen den beiden Teilen sollen nicht gedruckt werden.
Das führt beim Drucken leider dazu, dass Excel die beiden Bereiche auf 2 verschiedene Seiten drucken möchte...
Da ich den User noch andere Optionen einstellen lassen und dann selbst drucken lassen möchte, will ich PrintOut nicht verwenden.
Gibt es hier eine andere Möglichkeit, eine nicht-zusammenhängende PrintArea auf eine Seite zu drucken? .FitToPagesWide = 1 bringt hier leider auch nichts.
Vielen Dank sagt
der Jens

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

Betreff
Datum
Anwender
Anzeige
AW: bestimmte Zeilen nicht drucken
11.11.2007 17:56:20
Tino
Hallo,
eine Möglichkeit wäre die nicht benötigten auszublenden.
Gruss
Tino

AW: bestimmte Zeilen nicht drucken
11.11.2007 18:04:21
Jens
Hi Tino,
ja, das ist eine Möglichkeit.
Aber gibt es eine Möglichkeit, die Zeilen in BeforePrint auszublenden, und sie (ohne Verwendung von .PrintOut) nach dem Drucken (oder dem Drücken des Abbruch-Buttons im Druckfenster)auch automatisch wieder einzublenden?
Gruß
vom Jens

AW: bestimmte Zeilen nicht drucken
11.11.2007 18:10:00
Daniel
Hi
nein, meines Wissen nach nicht.
da es kein AfterPrint-Ereignis gibt, bleibt dir nur die Möglichkeit, den .PrintOut - Befehl innerhalb des BeforePrint-Makros zu verwenden und nach dem .PrintOut die Zeilen wieder einzublenden.
Warum möchstest du den .PrintOut-Befehl nicht verwenden?
Was spricht dagegen?
ansonsten bleibt dir nur ein seperates Makro zum Einblenden, das der Anwender per Button oder so auslösen muss.
Gruß, Daniel

Anzeige
AW: bestimmte Zeilen nicht drucken
11.11.2007 18:05:00
Daniel
Hi
da wäre mir nichts direktes bekannt.
das einzige, was funktionieren könnte, wäre den ersten Teil des Druckbereiches als Wiederholungszeile zu defnieren.
Das geht dann aber nur, wenn du max 2 Druckbereiche hast und alles auf eine Seite passt.
Folgende Workarounds wären denkbar:
1. über das Workbook_BeforePrint(Cancel As Boolean)- Ereignis die nicht zu druckenden Zeilen und Spalten vor dem Ausdruck ausblenden
2. von den Zu druckenden Zellbereichen jeweils eine verknüpfte Bildkopie erstellen und diese dann auf einem neunen Blatt zusammenstellen. Dieses neue Blatt wird dann gedruckt
wobei ich 1 favorisieren würde, wenn die Anzahl der zu druckenden Zeilen variabel ist,
2 könnte leichter umzusetzen sein, wenn es sich um Formblätter mit fester Grösse handelt.
Gruß, Daniel

Anzeige
AW: bestimmte Zeilen nicht drucken
11.11.2007 19:09:00
Tino
Hallo,
habe mal etwas zusammengebastelt, ist jetzt nur mal für zwei Markierte Bereiche gemacht.
Zwei Bereiche Markieren, die Zeilen die nicht in diesen Bereich sind werden ausgeblendet.
(vielleicht geht’s auch einfacher, mit meinen VBA Kenntnissen bekomme es nur so hin)
Vielleicht bringt dich dies etwas weiter.

Dim Test1, Test2, Test3, Test4 As Long
Dim Bereich As Long
Cells.EntireRow.Hidden = False 'Alle einblenden
If Selection.Areas.Count = 2 Then
Test1 = Selection.Areas(1).Row
Test2 = Selection.Areas(1).Count + (Selection.Areas(1).Row - 1)
Test3 = Selection.Areas(2).Row
Test4 = Selection.Areas(2).Count + (Selection.Areas(2).Row - 1)
For Bereich = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
Select Case Cells(Bereich, 1).Row
Case Test1 To Test2, Test3 To Test4
Case Else
Cells(Bereich, 1).EntireRow.Hidden = True
End Select
Next Bereich
End If


Gruss
Tino

Anzeige
AW: so geht der Code besser
11.11.2007 19:59:16
Tino
Hallo,
so gehts etwas besser, sollte die Markierung sich über mehr als eine Spalter erstrecken.

Dim Test1, Test2, Test3, Test4 As Long
Dim Bereich As Long
Cells.EntireRow.Hidden = False 'Alle einblenden
If Selection.Areas.Count = 2 Then
Test1 = Selection.Areas(1).Row
Test2 = Selection.Areas(1).Rows.Count + (Selection.Areas(1).Row - 1)
Test3 = Selection.Areas(2).Row
Test4 = Selection.Areas(2).Rows.Count + (Selection.Areas(2).Row - 1)
For Bereich = 1 To Cells.SpecialCells(xlCellTypeLastCell).Row
Select Case Cells(Bereich, 1).Row
Case Test1 To Test2, Test3 To Test4
Case Else
Cells(Bereich, 1).EntireRow.Hidden = True
End Select
Next Bereich
End If


Gruss
Tino

Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige