Anzeige
Archiv - Navigation
1196to1200
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
Inhaltsverzeichnis

Druckbereich Seitenumbruch

Druckbereich Seitenumbruch
Joni
Hi,
ich stehe derzeit vor folgender Anforderung:
In ein vorformatiertes Tabellenblatt sollen Daten aus einem anderen Tabellenblatt eingefügt werden. Es sind immer unterschiedlich große Datenblöcke die aus dem anderen Tabellenblatt mittels Autofilter zusammengefiltert werden. Das wäre noch nicht so schwierig. Jetzt möglich ich aber, dass im Zieltabellenblatt der Seitenumbruch für den Ausdruck so gewählt wird, dass so ein Datenblock nicht auseinandergerissen wird; wenn noch Platz ist auf die vorherige Seite sonst komplett auf die nächste Seite. Mir fallen dazu 2 Lösungen ein.
1. Mit einer festen Zeilenanzahl arbeiten. Vor dem Einfügen die Zeilen aus dem Datenblock zählen und wenn es zu viele sind einfach die restlichen Zeilen der vorherigen Seite leer lassen und auf der nächsten Seite einfügen.
2. Den Seitenumbruch im Druckbereich oberhalb des Datenblockes setzten der auf die nächste Seite soll.
Hat jemand so was in der Art in VBA schon einmal umgesetzt oder gibt es vielleicht noch bessere Lösungen.
Ich bin für eure Tipps dankbar.
Gruß Joni

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Druckbereich Seitenumbruch
31.01.2011 20:27:48
fcs
Hallo Toni,
Methode 1 funktioniert nur, wenn alle Zeilen im Ausdruck die gleiche Zeilenhöhe haben.
Methode 2 : hier hab ich einen Vorschlag. Allerdings sollte der Druckbereich im Zielblatt nicht festgelegt sein oder man müsste ihn zu Beginn des Makros aufheben und nach dem Einfügen der Daten wieder setzen.
Gruß
Franz
Sub FilterDatenNachZiel()
Dim wksDaten As Worksheet, wksZiel As Worksheet
Dim AnzahlPageBreaks As Long, ZeileEinfuegen As Long
Dim rngFilter As Range
Const ZielZeile1 = 2    '1. Einfügezeile im Zielblatt - ggf. anpassen
Const SpalteLast = 1    'Spalte zur Ermittlung der letzten Zeile mit Daten - ggf. anpassen _
Diese Spalte sollte in allen Zeilen Daten enthalten
Set wksDaten = Worksheets("Daten") 'Tabellenblatt mit Daten und Autofilter
Set wksZiel = Worksheets("Ziel")   'Tabelle in die daten kopiert werden sollen
With wksDaten
If .AutoFilterMode = True Then
Set rngFilter = .Range(.Rows(.AutoFilter.Range.Row + 1), _
.Rows(.Cells(.Rows.Count, SpalteLast).End(xlUp).Row))
With wksZiel
AnzahlPageBreaks = .HPageBreaks.Count
'nächste Einfüge-Zeile ermitteln
ZeileEinfuegen = .Cells(.Rows.Count, SpalteLast).End(xlUp).Row + 1
'Daten kopieren und einfügen
rngFilter.Copy Destination:=.Cells(ZeileEinfuegen, 1)
'ggf. manuellen Seitenwechsel einfügen
If ZeileEinfuegen > ZielZeile1 And .HPageBreaks.Count > AnzahlPageBreaks Then
.HPageBreaks.Add Before:=.Cells(ZeileEinfuegen, 1)
End If
End With
End If
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige