Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Druckbereich via VBA festlegen und verändern

Forumthread: Druckbereich via VBA festlegen und verändern

Druckbereich via VBA festlegen und verändern
27.12.2004 16:29:56
00011011
Moin...
...in einer Exceltabelle kann der Anwender via VBA's die Länge und das Format der Tabelle verändern und anpassen. Da die Länge des Tabelle zwischen zwei und sechs Seiten variiert, ist es sehr schwierig, eine Voreinstellung zu finden, so dass die Tabelle optimal ausgedruckt werden kann.
Ich habe bereits versucht, dieses Problem mit folgenden Befehlszeilen zu beheben:
Set ActiveSheet.HPageBreaks(2).Location = Range("A110")
,jedoch sind auch hier die vielzahl der Möglichkeiten zu groß. Gibt es eine Möglichkeit, dem PC mitzuteilen, dass er z.B. 30 Zeilen auf eine Seite drucken soll (nur eingeblendete Zeilen)?
Über Eure Vorschläge und Hilfe bin ich dankbar.
Gruß aus Köln
Christian
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckbereich via VBA festlegen und verändern
27.12.2004 16:46:02
Josef
Hallo Christian!
Probier mal:

Sub UmbruchDynamisch()
Dim lastRow As Long
Dim lRow As Long, n As Long
lastRow = Range("A65536").End(xlUp).Row
On Error Resume Next
ActiveSheet.Cells.PageBreak = xlPageBreakNone
On Error GoTo 0
For lRow = 1 To lastRow
If Rows(lRow).Hidden = False Then n = n + 1
If n Mod 30 = 0 Then ActiveSheet.HPageBreaks.Add Cells(lRow + 1, 1)
Next
End Sub

Gruß Sepp
Anzeige
Sorry. Zu lange gebraucht :-) o.T.
Ramses
...
!!! !!! Vielen Dank Euch Beiden !!! !!! o.T.
27.12.2004 17:17:21
00011011
Daaaaaaaaaanke.
AW: Druckbereich via VBA festlegen und verändern
Ramses
Hallo
mal auf die unkonventionelle Art :-)
Wenn du sagst, 30 Zeilen pro Seite genügen dir, dann könntest du mit einer Schleife die sichtbaren Zeilen zählen.

Sub Set_PageBreaks()

Sub Set_PageBreaks()
Dim i As Long, n As Long
Dim rowCounter As Integer
rowCounter = 0
n = 1
ActiveSheet.ResetAllPageBreaks
For i = 1 To Cells(65536, 1).End(xlUp).Row
If Rows(i).Hidden = False Then
rowCounter = rowCounter + 1
End If
If rowCounter = 30 Then
ActiveWindow.SelectedSheets.HPageBreaks.Add before:=Cells(i + 1, 1)
rowCounter = 0
End If
Next i
End Sub

Das ganze dann natürlich in das Before_Print Ereignis
Gruss Rainer
Dim i as long, n as long
dim rowCounter as integer
Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige