Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
784to788
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
784to788
784to788
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Dynamischen Seitenumbruch über VBA

Dynamischen Seitenumbruch über VBA
02.08.2006 12:14:25
Michael
Hallo Zusammen,
ich habe Problemstellung: Ein auszudruckendes Tabellenblatt setzt sich aus einer immer konstanten Breite (A bis AK) und einem immer gleichen Grundblock (z.B. von Zeile 60 - 96) zusammen. Nach dem Grundblock werden bedarfsabhängig immer gleich grosse Folgeblöcke (Breite wie oben und jeweils 13 Zeilen) hintereinander fortlaufend hereinkopiert (hier läuft ein Zähler n mit). Der Druckbereich/Seitenumbruch soll sich automatisch anpassen. Der Grundblock soll auf der ersten Seite gedruckt werden. Alle Folgeblöcke (sofern vorhanden bzw. n grösser 0) sollen jeweils in 4er-Bündeln auf die folgenden Seiten verteilt werden.
Kann mir hier jemand helfen?
Besten Dank!
Gruß
Michael

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

Betreff
Datum
Anwender
Anzeige
AW: Dynamischen Seitenumbruch über VBA
02.08.2006 13:12:37
P@ulchen
Hallo Michael,
wie sieht denn Dein jetziges Makro aus, mit dem die Blöcke in das Blatt eingefügt werden?
Und habe ich Dich richtig verstanden, dass immer 4 Folgeblöcke auf eine Druckseite sollen?
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

AW: Dynamischen Seitenumbruch über VBA
02.08.2006 13:40:04
Michael
Hallo P@ulchen,
hier das Makro zur Erstellung der jeweils 13-zeiligen Folgeblöcke. Diese werden aus anderen Tabellenblättern über Command-Buttons angesteuert. Es handelt sich um vordefinierte Muster-Tabellenblöcke (in ausgeblendeten Zeilen versteckt) Der Zähler "mangel" zählt wie oft ein Folgeblock hereinkopiert wurde, d.h. wie lang der gesamte Textblock wird, lässt sich aus Grundbock und mangel x Folgeblockgrösse ermitteln. Problematisch ist das richtige Einfügen der Seitenumbrüche (1x nach Grundblock und dann alle vier Folgeblöcke). Sofern kein Folgeblock generiert wurde (mangel gleich 0) muss schon nach dem Grundblock Schluss sein.
' Sprung in das Blatt RfO-Erklärung
Sheets("RfO-Erklärung").Select
' Koordinate des Mangelzählers
mangel = ActiveSheet.Cells(81, 20)
ActiveSheet.Cells(81, 20) = mangel
' Festlegung des zu kopierendes Bereiches (Musterblock in ausgeblendeten Zeilen)
ActiveSheet.Range("B15:AJ27").Select
' Kopieren des versteckten Bereiches (Vorlage Mangel NAD)
Selection.Copy
' Festlegung des Zielbereiches (zählerabhängig)
zeile = mangel * 13 + 98
' spalte = mangel * 13 + 98
' Einfügen des kopierten Abschnitts in Zielbereich (Definition der linken oberen Ecke des Zielbereichs)
ActiveSheet.Cells(zeile, 2).Select
ActiveSheet.Paste
' Erhöhung des Mangelzählers
mangel = mangel + 1
' Aktualisierung der Anzeige Mangel (Gesamtzahl) im Blatt RfO-Erklärung
Sheets("RfO-Erklärung").Select
ActiveSheet.Cells(81, 20) = mangel
Besten Dank!
Anzeige
AW: Dynamischen Seitenumbruch über VBA
02.08.2006 13:50:56
P@ulchen
Hallo Micha,
ich kann da noch keine Schleife entdecken, über die mehrere Blöcke eingelesen werden. Poste doch mal bitte das gesamte Makro.
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

AW: Dynamischen Seitenumbruch über VBA
02.08.2006 14:00:50
Michael
Hallo P@ulchen,
es gibt in diesem Sinne keine Schleife. Die Folgeblöcke werden von den Usern (auf eigenen Tabellenblättern) bedarfsgesteuert über Command-Buttons (siehe vorgenanntes Makro)einzeln generiert.
Es handelt sich um Checklisten verschiedener User. Will der User bei der Bearbeitung seiner Checkliste (auf seinem Tabellenblatt) einen Mangel kennzeichnen, drückt er den Command-Button (siehe Makro) und auf dem Blatt RfO-Erklärung wird ein verstecktes Muster kopiert und unten angehangen. "mangel" zählt somit nur wie oft (über alle Checklisten betrachtet) ein Folgeblock (Mangel) generiert wurde. Er dient somit zur korrekten Positionierung des jeweiligen Folgeblocks.
Schöne Grüße
Michael
Anzeige
AW: Dynamischen Seitenumbruch über VBA
02.08.2006 14:41:28
P@ulchen
Hallo Micha,
den Umbruch nach dem Grundblock kannst Du ja am Anfang des Codes setzen:
ActiveSheet.Rows(98).PageBreak = xlPageBreakManual
Dann eine weitere Variable (umbruch) einfügen, die Du immer um eins erhöhst und bei Erreichen von 4 auf 0 zurücksetzt:
mangel = mangel + 1
umbruch = umbruch + 1
If umbruch = 4 Then
ActiveSheet.Rows(zeile + 13).PageBreak = xlPageBreakManual
umbruch = 0
End If
Mit einer Beispieldatei wäre es vielleicht einfacher...
Gruß aus Leipzig
P@ulchen
www.excel-werkstatt.de

Anzeige
AW: Dynamischen Seitenumbruch über VBA
02.08.2006 15:26:23
Michael
Hallo P@ulchen,
danke für die Hilfe. Ich hatte nach Deinen Tipps nun die Idee das ganze über Modulo 4 zu regeln. Folgender Code wurde ergänzt und funktioniert:
' Einfügen des dynamischen Seitenumbruchs
mangel = ActiveSheet.Cells(81, 20)
If mangel Mod 4 = 0 Then
zeile = mangel * 13 + 98
ActiveSheet.Rows(zeile).PageBreak = xlPageBreakManual
End If
' Druckbereich dynamisch festlegen
mangel = ActiveSheet.Cells(81, 20)
zeile = mangel * 13 + 98
ActiveSheet.PageSetup.PrintArea = Range("A59:AK" & zeile).Address
Noch mal Danke!
Schöne Grüße
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige