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

Seitenwechsel nach benanntem Bereich

Seitenwechsel nach benanntem Bereich
19.09.2005 19:10:43
Jürgen
Hallo,
in einer Tabelle habe ich verschiedene Zellbereiche benannt; z.B.
Bereich("A1:F30") heißt PV_50
Bereich("A31:F83") heißt PV_52
Bereich("A84:F105") heißt PV_55
usw.
Die benannten Bereiche folgen unmittelbar hintereinander und haben eine unterschiedliche Anzahl von Zeilen.
Jeder Bereich hat in seiner ersten Zeile eine Überschrift, in der zweiten und in der letzten Zeile eine Leerzeile. Innerhalb des Bereichs sind weitere Leerzeilen möglich.
Mein Problem/meine Frage:
Beim Ausdruck möchte ich einen Seitenwechsel nach einem benannten Bereich einfügen, wenn auf einer Seite nur noch 2 Zeilen des nächsten benannten Bereichs angedruckt und der Rest des benannten Bereichs auf der nächsten Seite folgt.
Ich möchte den Bereich in so einem Falle sozusagen "zusammenhalten". Es sieht komisch aus, wenn unten auf der Seite nur eine Überschrift eines Bereichs angedruckt wird, gefolgt von einer Leerzeile, und die eigentlichen Daten ohne Überschrift auf der nächsten Seite folgen.
Mir fehlt jetzt der gedankliche Ansatz, wie ich abprüfen kann, welcher Bereich vom Seitenwechsel betroffen ist und wieviele (oder welche) Zeilen des betroffenen Bereichs noch auf der x-ten Seite gedruckt werden.
Wäre für einen Gedankenanstoß (besser wären natürlich einige Codezeilen) dankbar.
Gruß
Jürgen

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seitenwechsel nach benanntem Bereich
19.09.2005 19:16:13
Uwe
Hallo,
hasst Du es mal mit Druckbereich festlegen ( unter Datei-Druckbereich ) versucht?
AW: Seitenwechsel nach benanntem Bereich
19.09.2005 19:20:29
Jürgen
Hallo Uwe,
danke für die prompte Reaktion.
"Druckbereich festlegen" hilft hier nicht, da die Datei (= Vorlage) auf mehreren unterschiedlichen Druckern ausgedruckt wird. Und diese liefern eine unterschiedliche Anzahl von Zeilen pro Seite.
Gruß
Jürgen
AW: Seitenwechsel nach benanntem Bereich
19.09.2005 20:23:43
Matthias
Hallo Jürgen,
wie findest du das?

Sub DruckeBereich(n As String)
With ActiveSheet
.PageSetup.PrintArea = Range(n).Address
.PageSetup.PrintTitleRows = _
Range(Range(n)(1), Range(n)(1).Offset(1, 0)).EntireRow.Address
.PrintPreview 'zu Testzwecken, später durch .PrintOut ersetzen!
End With
End Sub
Sub test()
DruckeBereich "PV_50"
DruckeBereich "PV_52"
DruckeBereich "PV_55"
End Sub

Damit wird halt nach einem Bereich immer ein Seitenwechsel erzeugt.
Gruß Matthias
Anzeige
AW: Seitenwechsel nach benanntem Bereich
19.09.2005 20:35:37
Jürgen
Hallo Matthias,
danke für den Vorschlag, aber das trifft es noch nicht.
Es gibt auch Bereiche, die nur wenige Zeilen groß sind. Insoweit könnten auch mehrere Bereiche auf einer Seite gedruckt werden. Sieht irgendwie komisch aus, wenn auf einer gedruckten Seite nur wenige Zeilen zu sehen sind und die folgende Seite vollständig bedruckt ist.
Trotzdem vielen Dank für Deine Mühe.
Gruß
Jürgen
AW: Seitenwechsel Denkanstoß
19.09.2005 20:42:24
Aton
Hi
Ich hatte das Problem das ich Pläne auf verschiedenen Drucken ausdrucken wollte. (7)
Der Plan war eine Seite groß. Bei manchen ging mehr bei manchen weniger Zeilen drauf.
Ich habe es so gelöst.
Ich stellt durch Probieren bei jedem drucker fest, wieviele Pixel er Pro Seite Drucken Kann. Ohne Ränder und Kopf und Fußzeile.
Nach dem ich diese werte ermittelt hatte war es einfach die Zeilen so anzupassen, daß der Seritenumbruch genau stimmt. Selbst beim Neuen Drucker hatte ich keine Probleme mehr.
Vor dem Ausdruck wird Jedes Blatt in das Format für den Drucker eingestellt. Zeilen und Spalten angepasst.
Und kann Automatisch die Ganze Druckbare Seite Nutzen ob Bild oder Text.
Ich hoffe konnte dir etwas helfen.
Soll nur zum Nachdenken sein kein direkter vorschlag.
Das Ermitteln der Druckbaren Seite in Pixel dauert bei etwas Übung nicht mehr als 5-7 Min mit Excel. Bei der Seitenvorschau sieht man gleich wenn ein Pixel zu viel ist. da dan eine Zeile fehlt.
Gruß Aton
Anzeige
AW: Seitenwechsel Denkanstoß
19.09.2005 20:56:21
Jürgen
Hallo Aton,
das stimmt, Dein Lösungsvorschlag wäre eine Möglichkeit.
Ich dachte nur, dies ließe sich einfacher über eine VBA-Prozedur lösen. Auch hier ist es so, dass mindestens 8 verschiedene Drucker zum Einsatz kommen. Da ist es schon etwas aufwendig, die einzelnen Tabellen (es sind mehrere Tabellen, die so aufgebaut sind!) jeweils an einen bestimmten Drucker anzupassen.
Trotzdem danke für die Hilfe.
Gruß
Jürgen
AW: Seitenwechsel Denkanstoß
19.09.2005 21:00:29
Matthias
Hallo Jürgen,
sind und bleiben es 3 Bereiche, oder kommen da noch mehr dazu?
Gruß Matthias
AW: Seitenwechsel Denkanstoß
19.09.2005 21:05:51
Jürgen
Hallo Matthias,
die Bereiche sind unterschiedlich groß. Auf einer Seite kann es mehrere namentliche Bereiche in unterschiedliche Größe geben. Es ist nicht auf drei Bereiche pro Seite beschränkt.
Gruß
Jürgen
Anzeige
AW: Seitenwechsel Denkanstoß
19.09.2005 21:40:38
Matthias
Hallo Jürgen,
spiele mal ein wenig mit diesen Prozeduren. Vielleicht bringt es dich weiter.
Die zweite Prozedur ist aber aus mir unbekanntem Grund nicht zuverlässig/liefert manchmal Fehler. Vielleicht läuft es bei Dir ja einwandfrei.
Gruß Matthias
-----------------------------------------------------------------------------------

Sub Bereiche()
Dim n As Name, ber As Range
For Each n In ActiveWorkbook.Names
Set ber = n.RefersToRange
If ber.Worksheet.Name = ActiveSheet.Name Then
Debug.Print "Bereich """ & n.Name & """ ab Zeile " & _
ber(1).Row & _
" bis Zeile " & ber(ber.Count).Row
Else
Debug.Print "Bereich """ & n.Name & """ nicht im aktuellen Blatt"
End If
Next n
End Sub
Sub Seitenumbrüche()
Dim i As Integer
Dim s As Integer 'Seite
With ActiveSheet
.DisplayPageBreaks = True
Debug.Print .HPageBreaks.Count + 1 & "  Seite/n im Blatt"
s = 1
'erste Druckzeile ermitteln
If .PageSetup.PrintArea = "" Then
i = 1
Else
i = Range(.PageSetup.PrintArea)(1).Row
End If
Debug.Print "Seite " & s & " ab Zeile " & i
'DoEvents
For i = 1 To .HPageBreaks.Count
s = s + 1
'DoEvents
Debug.Print "Seite " & s & " ab Zeile " & _
.HPageBreaks(i).Location.Row
Next i
.DisplayPageBreaks = False
End With
End Sub

Anzeige
AW: Seitenwechsel Denkanstoß
19.09.2005 21:52:52
Jürgen
Hallo Matthias,
danke für Deine Hilfe.
Die erste Prozedur zeigt mir, welcher Bereich von welcher Zeile bis zu welcher Zeile reicht. Daraus kann man evtl. etwas machen.
Wie kann ich zählen, wieviele Zeilen auf eine Seite gehen: Anzahl_Zeilen_pro_Tabelle/HPageBreaks.Count?
Mit der zweiten Prozedur hast Du Recht: sie zeigt auch bei mir ein falsches Ergebnis an (nur 1 Seite im Blatt, obwohl in der Tabelle zwei Seiten vorhanden sind).
Gruß
Jürgen
AW: Seitenwechsel Denkanstoß
19.09.2005 21:58:56
Matthias
Hallo Jürgen,
man muss scheibar die Ansicht verändern, dann geht es zumindest bei mir:

Sub ErmittleSeitenumbrüche()
Dim i As Integer
Dim s As Integer 'Seite
ActiveWindow.View = xlPageBreakPreview
With ActiveSheet
.DisplayPageBreaks = True
Debug.Print .HPageBreaks.Count + 1 & "  Seite/n im Blatt"
s = 1
'erste Druckzeile ermitteln
If .PageSetup.PrintArea = "" Then
i = 1
Else
i = Range(.PageSetup.PrintArea)(1).Row
End If
Debug.Print "Seite " & s & " ab Zeile " & i
'DoEvents
For i = 1 To .HPageBreaks.Count
s = s + 1
'DoEvents
Debug.Print "Seite " & s & " ab Zeile " & _
.HPageBreaks(i).Location.Row
Next i
.DisplayPageBreaks = False
End With
ActiveWindow.View = xlNormalView
End Sub

Gruß Matthias
Anzeige
AW: Seitenwechsel Denkanstoß
19.09.2005 22:14:07
Jürgen
Hallo Matthias,
das sieht ganz gut aus; funktioniert jetzt auch bei mir.
Man müsste jetzt nur noch beide Prozeduren miteinander verbinden, um zum einen die Anzahl der Zeilen pro Seite zu erhalten und zum anderen festzustellen, wieviele Zeilen die einzelnen Bereiche enthalten, um dann vor Erreichen der max. Zeilen pro Seite einen Seitenwechsel einzufügen.
Hast du da noch einen Ansatzpunkt?
Bin dir für die bisherige Unterstützung sehr dankbar!
Gruß
Jürgen
AW: Seitenwechsel Denkanstoß
19.09.2005 22:35:03
Matthias
Hallo Jürgen,
Hast du da noch einen Ansatzpunkt?
heute nicht mehr, ich geh jetzt schlafen. Muss morgen um 5 raus.
Gruß Matthias
Anzeige
AW: Seitenwechsel Denkanstoß
19.09.2005 22:39:53
Jürgen
Hallo Matthias,
hast Recht, es ist schon spät.
Dir nochmals vielen Dank für heute, hast mich ein Stück weitergebracht.
Gruß
Jürgen
AW: Seitenwechsel Denkanstoß
19.09.2005 22:44:39
Aton
Hi
Tia du hast ein Denkfehler drin.
ich mach das 1 mal pro drucker.
wenn ich dann ausdrucke, Starte ich den von mir gewälten drucker über Textfeld.
das was. egal ob ich bilder text gemischt 1 celle ausdrucke. der drucker wird auf die Seite angepasst und ab gehts.
der vorteil dabei ich kann es direkt am bildschirm sehn wie es danach ausieht. denn die zeilen die Beeinflust werden durch das einstellen sind fast immer eh nur rand um das blatt herum.
ich würde es nie mehr missen wollen. selbst seiten die ich scanne kurz einrichten auf bildschirm, drucker textfeld drücken fertig. und stimmt immer.
bei neuem drucker 5 min um festzustellen wie viele pixel er drucken kann, anpasung kopieren, etwas ändern und alles optimal. keine fehler. selbst wenn ich raster möchte kann ich dies auf bildschirm direckt einstellen und stimmt bei jedem drucker sofort.
auf den mm bei 210 x 270 mm
Gruß Aton
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige