ich wuerde gerne in einer Tabellenzelle die Aktuelle Seitenzahl
anzeigen:
z.B. =Seite()
(wie es auch in der Kopf-/Fusszeile moeglich ist; oder in Word)
Toll aber nicht ganz so wichtig waehre auch die Anzeige der Gesamtzahl
der Seiten.
Leider hab ich auch zu diesem Problem nix gefunden.
Vielen Dank im Voraus
Tobias
Sent via Deja.com http://www.deja.com/
Before you buy.
eine etwas verspätete Antwort zu Deiner Anfrage in der Excel-Newsgroup.
Zu Gesamtseitenzahl:
Sub Gesamtzahl_der_Druckseiten()
X = ExecuteExcel4Macro("get.document(50)")
Range("A1") = X
End Sub
schreibt die Seitenzahl in Zelle A1
Sub Gesamtzahl_der_Druckseiten()
X = ExecuteExcel4Macro("get.document(50)")
ActiveCell = X
End Sub
schreibt die Seitenzahl in die markierte Zelle.
Schwieriger ist das Problem mit der aktuellen Seitenzahl. Ich nehme mal
an, Du meinst damit die Druckseite, in der der Cursor steht.
Folgende Makros in ein allgemeines Modul kopieren. Wenn das Makro
Zahl_der_aktuellen_Druckseite()
aufgerufen wird, wird die Nr. der Druckseite, in der sich der Cursor
befindet, in die markierte Zelle eingetragen. Achtung: Funktioniert nur,
wenn sich die markierte Zelle im Druckbereich befindet.
Dim ZB%, SB%, i%, j%, y%, z%, IntZ%, IntS%
Dim eSeite As Boolean, aSeite As Boolean
Sub Zahl_der_aktuellen_Druckseite()
Application.ScreenUpdating = False
ActiveSheet.PageSetup.PrintArea = ""
y = 1: z = 1: i = 1: j = 1
eSeite = False: aSeite = False
Do While aSeite = False
Call Aktuelle_Seite
Loop
End Sub
Sub Aktuelle_Seite()
Dim Blatt As Range
Dim Prüfen As Object
Do While eSeite = False
Call Seitenumbruch(i, j)
Set Blatt = Range(Cells(y, z), Cells(ZB, SB))
Set Prüfen = Application.Intersect(Range(ActiveCell.Address), _
Range(Blatt.Address))
If Prüfen Is Nothing = False Then
ActiveCell = "Aktuelle Druckseiten-Nr. ist " & i
End
End If
y = ZB + 1
i = i + 1
Loop
j = j + 1
z = SB + 1
i = 1: y = 1
eSeite = False
End Sub
Sub Seitenumbruch(nBlatt, oBlatt)
Dim varPB As Variant
Dim nSeite%
varPB = ExecuteExcel4Macro("INDEX(GET.DOCUMENT(64)," & nBlatt & ")")
If IsError(varPB) Then
ZB = Cells(Cells.Rows.Count, oBlatt).End(xlUp).Row
eSeite = True
Exit Sub
End If
ZB = varPB - 1
varPB = ExecuteExcel4Macro("INDEX(GET.DOCUMENT(65)," & oBlatt & ")")
If IsError(varPB) Then
aSeite = True
SB = Cells(nBlatt, 256).End(xlToLeft).Column
Exit Sub
End If
SB = varPB - 1
End Sub
Der Basiscode stammt von Hans Herber.
Gruß
Martin Beck