Anzeige
Archiv - Navigation
1836to1840
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

variabler Seitenumbruck

variabler Seitenumbruck
06.07.2021 14:36:40
Alwin
Hallo VBA-Forum User,
Ich habe mir in Excel eine Tabelle "Hüttenbelegung" erstellt.
Diese sieht wie folgt aus:
https://www.herber.de/bbs/user/146978.xlsx
Der Druckbereich ist auf den Spalten 01 (Hütte) bis Spalte 03 (Vorname) festegelegt.
Jetzt möchte ich, das jede Hütte auf einer Seite ausgedruckt wird.
Hierzu habe ich folgenden VBA-Code gefunden:

Sub Umbruch()
Dim rngC As Range
Cells.PageBreak = xlPageBreakNone
For Each rngC In Columns("D").SpecialCells(xlCellTypeConstants)
If rngC.Value = "JA" Then rngC.EntireRow(2).PageBreak = xlPageBreakManual
Next rngC
End Sub
Wenn ich diesen Code ausführe, bekomme ich eine Fehlermeldung.
Beim debuggen wird die Zeile gelb "Cells.PageBreak = xlPageBreakNone"
Da ich absoluter Laie bin brauche ich Hilfe

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: variabler Seitenumbruck
06.07.2021 14:55:21
UweD
Hallo
Die Ja Spalte brauchst du nicht.
das makro kann doch selbst checken, wann der Wechsel vorliegt
versuch das mal

Sub Seitenwechsel()
On Error GoTo Fehler
Dim TB1, i%
Dim SP%, ZE&, LR&
'*** Stammdaten Anfang
Set TB1 = Sheets("Tabelle1")
SP = 4 'Spalte D
ZE = 2 'ab Zeile wegen Überschrift
'*** Stammdaten Ende
With TB1
.ResetAllPageBreaks
LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = ZE To LR
If .Cells(i + 1, SP)  .Cells(i, SP) Then
.HPageBreaks.Add Before:=.Cells(i + 1, SP)
End If
Next
End With
MsgBox "fertig"
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: variabler Seitenumbruck
06.07.2021 19:21:57
Alwin
Hallo Uwe,
danke für die schnelle Beantwortung.
In der 1.Tabelle, die ich hochgeladen habe hat dein Code super funktioniert.
Nun habe ich versuche, diese in meine Tabelle einzupflegen - leider ohne Erfolg!
Deshalb habe ich jetzt meine eigentliche Tabelle hochgeladen
https://www.herber.de/bbs/user/146987.xlsm
Hier habe ich versucht, den Code "Tabelle3=Hüttenbelegung" reinzu koperen!!!
Leider ohne Erfolg
AW: variabler Seitenumbruck
07.07.2021 09:16:14
UweD
Hallo
Was denkst du, wofür der extra gekennzeichnete Bereich im Kopf des Makros ist?
Passe das hier

'*** Stammdaten Anfang
Set TB1 = Sheets("Tabelle1")
SP = 4 'Spalte D
ZE = 2 'ab Zeile wegen Überschrift
'*** Stammdaten Ende

auf deine neue Datei an.

'*** Stammdaten Anfang
Set TB1 = Sheets("Hüttenbelegung")
SP = 3 'Spalte C 'Spalte mit wechselndem Merkmal
ZE = 7 'ab Zeile wegen Überschrift
'*** Stammdaten Ende
dann läuft das
LG UweD
Anzeige
AW: variabler Seitenumbruck
07.07.2021 13:31:24
Alwin
Hallo Uwe,
ich habe meinen Fehler gefunden:
1. ich hatte "Set TB1 = Sheets("Tabelle3") " anstatt "Set TB1 = Sheets("Hüttenbelegung")" eingetragen,
da im VBA die Tabelle unter "Tabelle3 (Hüttenbelegung)" eingetragen ist.
Den der Seitenumbruch soll erst stattfinden sobald sich die Hüttenbezeichnung ( Hütte 01; Hütte 02) ändert,
und nicht breits bei den Hütten-Verantwortlichen, die sogenannten "Teamer" (Hütte 01 - Teamer; Hütte 02 - Teamer).
Dafür ist wird in der "Spalte H" jeweils das Wort "Seitenwechsel" automatisiert eingetragen, sobald ein Seitenwechsel gemacht werden soll
2. ich hatte "SP = 8 'Spalte H" eingetragen, da in dieser Spalte das Wort "Seitenwechsel"
in der betreffenden Zeile steht, wo ein Seitenwechsel stattzufinden hat!!
Die Spalte H ist farblich so hinterlegt, das die Schriftfarbe gleich Rahmenfarbe ist, somit fällt dem Benutzer dies nicht auf !!!
Anzeige
AW: variabler Seitenumbruck
07.07.2021 14:09:14
UweD
Hallo
das ist ja Wahnsinn, was du da in dem Blatt Berechnung alles für Formeln drinstehen hast...
Hierdurch wird das "- Teamer" außen vor gelassen

Sub Seitenwechsel()
On Error GoTo Fehler
Dim TB1, i%
Dim SP%, ZE&, LR&, Ohne$
'*** Stammdaten Anfang
Set TB1 = Sheets("Hüttenbelegung")
SP = 3 'Spalte C
ZE = 7 'ab Zeile wegen Überschrift
Ohne = " - Teamer" 'bleibt unberücksichtigt
'*** Stammdaten Ende
With TB1
.ResetAllPageBreaks
LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = ZE To LR - 1
If Replace(.Cells(i + 1, SP), Ohne, "")  Replace(.Cells(i, SP), Ohne, "") Then
.HPageBreaks.Add Before:=.Cells(i + 1, SP)
End If
Next
End With
MsgBox "fertig"
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub
LG UweD
Anzeige
AW: variabler Seitenumbruck
07.07.2021 14:50:57
Alwin
Super klappt hervorragend.
Gibt es auch eine Möglichkeit, den Code so zu erweitern,
dass wenn in der Spalte H das Wort "Seitenwechsel" steht,
dann dieser Seitenwechsel durchgeführt wird?
Dann könnte ich das in meinen anderen Tabellen ebenfalls einfügen!
Ich würde dann zum Beispiel in der Tabelle 2 (Schnelltest) nach x-Einträgen (x=15)
einen Seitenwechsel durchführen.
Wiederum in der Tabelle 5 (Tabelle3) könnte ich als Geburtstagsliste jeden Monat oder jedes Quartal
einen Seitenwechsel durchführen.
Ich wäre somit sehr flexibel mit dem VBA-Code!
LG
Alwin
Anzeige
AW: variabler Seitenumbruck
07.07.2021 15:17:16
UweD

Sub Seitenwechsel()
On Error GoTo Fehler
Dim TB1, i%, SW$
Dim SP%, ZE&, LR&
'*** Stammdaten Anfang
Set TB1 = Sheets("Hüttenbelegung")
SP = 8 'Spalte H
ZE = 7 'ab Zeile wegen Überschrift
SW = "Seitenumbruch"
'*** Stammdaten Ende
With TB1
.ResetAllPageBreaks
LR = .Cells(.Rows.Count, SP).End(xlUp).Row 'letzte Zeile der Spalte
For i = ZE To LR - 1
If Cells(i + 1, SP) = SW Then
.HPageBreaks.Add Before:=.Cells(i + 1, SP)
End If
Next
End With
MsgBox "fertig"
'*** Fehlerbehandlung
Err.Clear
Fehler:
Application.EnableEvents = True
If Err.Number  0 Then MsgBox "Fehler: " & _
Err.Number & vbLf & Err.Description: Err.Clear
End Sub

Anzeige
Lösung
07.07.2021 18:07:27
Alwin
Hallo Uwe,
das ist genau das, was ich gesucht habe.
Danke für die super Unterstützung
LG
Alwin

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige