Excel, Seitennummer einer Zelle ermitteln
Mitunter stellt sich die Frage, auf welcher Seite eine bestimmte Zelle gedruckt werden wird. Diese Funktion gibt die Seiten-Nummer zurück:
Option Explicit Public Function SeitenNr(rngZelle As Range) As Integer Dim wksHor As Integer, wksVert As Integer, SeiteNr As Integer Dim VertPb As Object, HortPb As Object Dim lngOrder As Long lngOrder = rngZelle.Parent.PageSetup.Order wksVert = rngZelle.Parent.VPageBreaks.Count + 1 wksHor = rngZelle.Parent.HPageBreaks.Count + 1 SeiteNr = 1 For Each VertPb In rngZelle.Parent.VPageBreaks If VertPb.Location.Column > rngZelle.Column Then Exit For SeiteNr = SeiteNr + IIf(lngOrder = xlDownThenOver, wksHor, 1) Next VertPb For Each HortPb In rngZelle.Parent.HPageBreaks If HortPb.Location.Row > rngZelle.Row Then Exit For SeiteNr = SeiteNr + IIf(lngOrder = xlDownThenOver, 1, wksVert) Next HortPb SeitenNr = SeiteNr End Function 'Danke an EarlFred für die Korrektur! :-)
Wenn Sie (nach der Installation dieser Funktion) in einer beliebigen (leeren) Zelle wissen möchten, auf welcher Seite die Zelle R47 steht, dann geben Sie die Funktion so ein:
=SeitenNr(R47)
und die als Ergebnis angezeigte Zahl ist dann die Seiten-Nummer, welche auch bei entsprechender Einstellung auf dem Ausdruck vermerkt ist. Wenn Sie irgend etwas an der Tabelle ändern, was die Seitenaufteilung verändern könnte, dann muss die Funktion natürlich erneut aufgerufen werden.
Möchten Sie diese Funktion in Ihrem Code einsetzen und der Variablen DruckSeitenNummer zuweisen, dann wäre der Aufruf beispielsweise so:
DruckSeitenNummer = SeitenNr(Range("R47"))
Hinweis: Denken Sie bitte daran, dass Funktionen (UDF) standardmäßig in einem allgemeinen Modul gespeichert werden.
Sie können den Funktions-Code als gepackte *.zip-Datei mit dem ASCII- (Text) und Basic-Code zum Einfügen in ein Modul hier herunter laden. Sollten Sie diese Funktionalität in mehreren Mappen benötigen, bietet sich eine Konvertierung in ein Add-In an. Auf Wunsch übernehmen unsere Sponsoren von GMG-CC das gerne für Sie gegen ein geringes Entgelt.
[NachObenLetzte Verweis=„CS: Druckseite ermitteln”]