Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1620to1624
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

Seitenumbrüche erstellen

Seitenumbrüche erstellen
07.05.2018 17:55:40
Christian
Hallo zusammen,
ich bin Anfänger in der Nutzung von VBA. Daher hier mein Anliegen:
Ich erstelle aktuell eine Kundenübersicht mit Excel. In der ersten Tabelle stehen alle Kunden mit den entsprechenden Daten, hier gibt es keine Probleme. In der zweiten Tabelle befindet sich ein mehrseitiges Formular, das mittels der Daten aus Tabelle 1 ausgefüllt wird. Auch das klappt.
Das Problem ist die Formatierung beim Ausdrucken des Formulars. Hierfür benötige ich Seitenumbrüche, damit die inhaltlichen "Blöcke" zusammen auf einer Seite stehen. Der Rest der Seite würde dann leer bleiben. Diese Seitenumbrüche kriege ich nicht hin.
Meine Idee bisher ist folgender Befehl: Liste.Rows(Zahl).PageBreak = xlPageBreakManual
Das habe ich auch schon probiert. Allerdings ist mir nicht klar, in welchem Zusammenhang (Code) dieser Befehl angewandt werden muss.
Ich hoffe, dass meine Frage klar geworden ist und bin über jede Hilfestellung dankbar!
Mit freundlichen Grüßen,
Christian

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Woran erkennt xl die Blöcke? owT
07.05.2018 18:11:39
Fennek
AW: Woran erkennt xl die Blöcke? owT
07.05.2018 19:26:27
Christian
Die Überschrift eines jeden Blocks ist eine Zahlenkombination, die den Block von den anderen unterscheidet. Zum Beispiel: WR-Nummer: 2-1
Grüße,
Christian
AW: Archiv
07.05.2018 19:54:09
Fennek
Hallo,
bei einer ähnlichen Frage vor einiger Zeit war die Trennung bei 2 ge-merged-en Zellen.Dafür passt dieser Code. Die kleinen notwendigen Änderungen musst du einbauen:

Sub T1()
Dim WS As Worksheet: Set WS = ActiveSheet
Dim HPb As HPageBreak
WS.ResetAllPageBreaks
With WS.PageSetup
'.PrintTitleRows = "$2:$2"
'.PrintArea = "$A$2:$B$120"
'############ sehr langsam #############
hp = 1
r = Range(.PrintArea).Row
lr = Range(.PrintArea).Row + Range(.PrintArea).Rows.Count
For i = Range(.PrintArea).Row + 3 To lr
'If Rows(i).PageBreak = xlPageBreakManual Then Debug.Print "Manu " & i
'If Rows(i).PageBreak = xlPageBreakAutomatic Then Debug.Print "Auto " & i
If Cells(i, 3).MergeArea.Count > 2 Or i = lr Then
If WS.HPageBreaks(hp).Location.Row 
mfg
Anzeige
AW: Archiv
08.05.2018 10:48:50
Christian
Vielen Dank für deine Antwort, das hilft mir schonmal weiter.
Ich habe den Code jetzt angepasst (siehe unten). Wenn ich den Code mittels F8 Schritt für Schritt auf Richtigkeit prüfe, bekomme ich Laufzeitfehler '9' (Index außerhalb des gültigen Bereichs) in folgender Zeile: ActiveSheet.HPageBreaks.Add Rows (i)
Sub SeitenUmbruch()
Dim HPb As HPageBreak
Dim Tabelle2 As Worksheet: Set Tabelle2 = ActiveSheet
Dim Zelle As Range
'Alle Seitenumbrüche im aktuellen Tabellenblatt löschen
ActiveSheet.ResetAllPageBreaks
With ActiveSheet.PageSetup
.PrintTitleRows = "$A$1:$AB$1"
.PrintArea = "$A$2:$AB$71"
hp = 1
r = Range(.PrintArea).Row
lr = Range(.PrintArea).Row + Range(.PrintArea).Rows.Count
For i = Range(.PrintArea).Row + 3 To lr
If Rows(i).PageBreak = xlPageBreakManual Then Debug.Print "Manu" & i
If Rows(i).PageBreak = xlPageBreakAutomatic Then Debug.Print "Auto" & i
If Cells(i, 3).MergeArea.Count > 2 Or i = lr Then
If ActiveSheet.HPageBreaks(hp).Location.Row 

Ich freue mich über jede Hilfestellung, danke!
Grüße,
Christian
Anzeige
AW: Archiv
08.05.2018 11:44:23
Christian
Update
Die erste Seite lässt sich mit obigem Code drucken, der Seitenumbruch ist an der richtigen Stelle und es gibt keine Überschneidungen. Der Laufzeitfehler (9) wird aber weiterhin angezeigt.
Außerdem lässt sich nur die erste Seite drucken! Die restlichen dazugehörigen Seiten werden im Druckmodus nicht angezeigt.
Grüße,
Christian

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige