Steve sucht nach einer Möglichkeit, in einem VBA-Makro die Anzahl der Seiten eines Arbeitsblatts beim Drucken und die Seitenzahl zu bestimmen, auf der eine bestimmte Zelle gedruckt wird. Diese Aufgabe ist nicht ganz so einfach, wie man hoffen würde, aber sie kann erledigt werden.

Es scheint, dass der beste Weg, dies zu handhaben, darin besteht, eine veraltete (aber immer noch verfügbare) Excel 4-Funktion zu verwenden, um die Anzahl der insgesamt gedruckten Seiten in einem Arbeitsblatt zu bestimmen. Anschließend können Sie mithilfe der HPageBreaks- und VPageBreaks-Sammlungen herausfinden, wo sich die Zelle in der Matrix der zu druckenden Seiten befindet. Das folgende Beispiel zeigt ein Makro, das diese Elemente verwendet:

Sub PageInfo()

Dim iPages As Integer     Dim iCol As Integer     Dim iCols As Integer     Dim lRows As Long     Dim lRow As Long     Dim x As Long     Dim y As Long     Dim iPage As Integer

iPages = ExecuteExcel4Macro("Get.Document(50)")



With ActiveSheet         y = ActiveCell.Column         iCols = .VPageBreaks.Count         x = 0         Do             x = x + 1         Loop Until x = iCols _           Or y < .VPageBreaks(x).Location.Column         iCol = x         If y >= .VPageBreaks(x).Location.Column Then             iCol = iCol + 1         End If

y = ActiveCell.Row         lRows = .HPageBreaks.Count         x = 0         Do             x = x + 1         Loop Until x = lRows _           Or y < .HPageBreaks(x).Location.Row         lRow = x         If y >= .HPageBreaks(x).Location.Row Then             lRow = lRow + 1         End If

If .PageSetup.Order = xlDownThenOver Then             iPage = (iCol - 1)  (lRows + 1) + lRow         Else             iPage = (lRow - 1)  (iCols + 1) + iCol         End If     End With     MsgBox "Cell " & ActiveCell.Address & _       " is on " & vbCrLf & "Page " & _       iPage & " of " & iPages & " pages"

End Sub

Beachten Sie bei diesem Makro, dass die HPageBreaks- und VPageBreaks-Sammlungen nur dann als korrekt angesehen werden, wenn Sie das Arbeitsblatt in der Seitenumbruchvorschau (Ansicht | Seitenumbruchvorschau) anzeigen. Stellen Sie daher sicher, dass Sie sich in diesem Modus befinden, bevor Sie eine Zelle auswählen und das Makro ausführen.

_Hinweis: _

Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.

ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.

Dieser Tipp (3135) gilt für Microsoft Excel 97, 2000, 2002 und 2003. Eine Version dieses Tipps für die Multifunktionsleistenschnittstelle von Excel (Excel 2007 und höher) finden Sie hier: