Seitenzahl einer Zelle bestimmen

30/11/2010 - 13:38 von Uwe Ziemke | Report spam
Hallo,

gibt es eine Möglichkeit die Seite einer Zelle zu bestimmen?
Ich möchte konkret wissen auf welcher Seite z.B. die Zelle AB999 gedruckt
wird. Die Spalten/Zeilen sind leider nicht alle gleich hoch.
Ob als Formel oder als Makro ist egal.

Vielen Dank im Voraus

Uwe
 

Lesen sie die antworten

#1 Andreas Killer
01/12/2010 - 17:48 | Warnen spam
Am 30.11.2010 13:38, schrieb Uwe Ziemke:

gibt es eine Möglichkeit die Seite einer Zelle zu bestimmen?
Ich möchte konkret wissen auf welcher Seite z.B. die Zelle AB999 gedruckt wird. Die Spalten/Zeilen sind leider nicht
alle gleich hoch.


Ja, allerdings ist das nicht so easy, weil die PageBreaks in VBA nur dann zuverlàssig sind wenn die Ansicht auf
Seitenumbruch steht. Daher dauert die Ausführung des Macro's ggf. einen Moment.

Andreas.

Option Explicit
Option Private Module

Sub Test()
Debug.Print RangeOnPage(Range("AB999"))
End Sub

Function RangeOnPage(ByVal R As Range) As Long
'Liefert die Seite auf der R gedruckt wird.
Dim i As Long, v As Long, h As Long
Dim OldView As Variant, OldSheet As Object
Dim SaveScreenUpdating As Boolean, SaveEnableEvents As Boolean
SaveScreenUpdating = Application.ScreenUpdating
SaveEnableEvents = Application.EnableEvents
Application.ScreenUpdating = False
Application.EnableEvents = False
Set OldSheet = ActiveSheet
R.Parent.Activate
OldView = ActiveWindow.View
ActiveWindow.View = xlPageBreakPreview
With R.Parent
For i = 0 To .VPageBreaks.Count
If i > 0 Then If .VPageBreaks(i).Location.Column > R.Column Then Exit For
v = v + 1
Next
For i = 0 To .HPageBreaks.Count
If i > 0 Then If .HPageBreaks(i).Location.Row > R.Row Then Exit For
h = h + 1
Next
If .PageSetup.Order = xlOverThenDown Then
RangeOnPage = (.VPageBreaks.Count + 1) * (h - 1) + v
Else
RangeOnPage = (.HPageBreaks.Count + 1) * (v - 1) + h
End If
End With
ActiveWindow.View = OldView
OldSheet.Activate
Application.ScreenUpdating = SaveScreenUpdating
Application.EnableEvents = SaveEnableEvents
End Function

Ähnliche fragen