Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Seitenzahl in einer Zelle (Excel 97 SR-2)

27 views
Skip to first unread message

tobi...@my-deja.com

unread,
Jan 14, 2000, 3:00:00 AM1/14/00
to
Hallo Excelenzen,

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.

Martin Beck

unread,
Jan 20, 2000, 3:00:00 AM1/20/00
to
Hallo Tobias,

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

0 new messages