Herbers Excel-Forum - das Archiv

Seitenumbruch in VBA variable halten

Bild

Betrifft: Seitenumbruch in VBA variable halten
von: JayLen

Geschrieben am: 31.03.2005 12:38:04
Hallo Leute
Ich habe ein Problem. Schaut euch mal meine Beispieldatei an. Ist es irgendwie möglich das der Seitenumbruch nach dem letzten ganzen "Datensatz" vollzogen wird? Es geht vor allem daraum das zu automatisieren. In meiner "richtigen" Datei sind es immer unterschiedlich viele Zeilen pro Datensatz, von daher müsste man das dann immer händlisch machen. Ist es also möglich den Zeilenumbruch nach dem letzten Datensatz durchzuführen den er richtig darstellen kann?
Beispieldatei: https://www.herber.de/bbs/user/20428.xls
Mein Dank ist euch Gewiss
Gruss
JayLen
Bild

Betrifft: AW: Seitenumbruch in VBA variable halten
von: Frank Domke

Geschrieben am: 31.03.2005 17:22:23
Hallo JayLen,
ich habe das für ein Projekt mal geschrieben und für Dich es zusammengestutzt. Es ist trotzdem mehr drin und soll Dir nur veranschaen, wie es gemacht werden kann. Es ist ausbaufähig, sollte Dir aber als Lösungansatz schon brauchbares liefern:
Option Explicit
Public
Sub sÜberträge()
Dim lngLastRow As Long              ' letzte Zeile des Arbeitsblattes
Dim lngCurRow As Long               ' aktuelle Zeile
Dim lngLastMerkRow As Long
Dim intZeilen As Integer
Dim lngErsteZeileaufSeite As Long   ' Erste, in die Summe aufzunehmende, Zeile
Dim blnNewErlZ As Boolean           ' Neuer Absatz beginnt mit Datum!
Dim Zelle As Range
Dim intPageCounter As Integer
lngLastMerkRow = 4
lngCurRow = 4                       ' Startzeile
lngErsteZeileaufSeite = 4
blnNewErlZ = False
intPageCounter = 0
lngLastRow = Cells.SpecialCells(xlLastCell).Row
While lngCurRow <= lngLastRow
' Neue Seite ?
If Rows(lngCurRow).PageBreak = xlPageBreakAutomatic Then
intPageCounter = intPageCounter + 1
Application.StatusBar = "Überträge der Seite " & _
intPageCounter & " werden ermittelt, bitte warten ..."
' x Leerzeilen vor lngLastMerkRow eintragen
' +1 für Leerzeile auf Folgeseite
intZeilen = 0
Do While Not (Rows(lngLastMerkRow + intZeilen).PageBreak = _
xlPageBreakAutomatic)
Rows(lngLastMerkRow + intZeilen).Insert
With Range(lngLastMerkRow + intZeilen & ":" & lngLastMerkRow + intZeilen)
.RowHeight = ActiveSheet.StandardHeight    ' 15.75 Zeilenhöhe
.VerticalAlignment = xlCenter           ' vertikale Ausrichtung: Mitte
With Range("B" & lngCurRow & ":" & "C" & lngCurRow)
.IndentLevel = 1                        ' muss wieder gesetzt werden
End With
.Font.Name = "Times New Roman"     ' Alles auf Times setzen
.Font.Size = 12
.Font.Bold = False
.Font.Italic = False
.Font.Underline = xlUnderlineStyleNone
.Borders(xlEdgeTop).LineStyle = xlNone
.Borders(xlEdgeBottom).LineStyle = xlNone
End With
intZeilen = intZeilen + 1
lngLastRow = lngLastRow + 1
Loop
lngErsteZeileaufSeite = lngLastMerkRow + intZeilen
lngCurRow = lngLastMerkRow + intZeilen + 1
Else
If IsDate(Range("A" & lngCurRow)) Then
' Neuer Datensatz, also Zeiger neu setzen
lngErsteZeileaufSeite = lngCurRow
lngLastMerkRow = lngCurRow
End If
lngCurRow = lngCurRow + 1
End If
Wend
End Sub

Viel Spaß
Frank.
 Bild
Excel-Beispiele zum Thema "Seitenumbruch in VBA variable halten"
Vertikalen Seitenumbruch verhindern Seitenumbruch ermitteln und Übertrag erstellen
Vor dem Drucken an den Seitenumbrüchen die Seitennummer eintragen Seitenumbruch nach Zeilen mit bestimmtem Inhalt einfügen
Variablenübergabe in andere Arbeitsmappen Text aus Textbox in Variable
Einlesen von Zellinhalten in Variablen Variable in Formel einbauen
Variable in Excel-Formel einbauen. Text aus UserForm-Textbox in Variable einlesen