Hallo Kristian,
gibt es eine Möglichkeit, die (Druck-)Seitenanzahl eines
Dokuments per VBA zu ermitteln?
wenn es um Excel-Seiten geht - ja 
dazu gibt es zwei Ojekte mit der Eigenschaft count
HPageBreaks - für horizontal, greift auf waagerechte Seitenumbrüche zu, also Seitenwechsel nach unten
VPageBreaks - für vertikal, greift auf vertikale Seitenumbrüche zu, also nach rechts
zum Beispiel:
Sub SeitenwechselZaehlen()
Dim Ver As Integer
Dim Hor As Integer
Ver = ActiveSheet.VPageBreaks.Count
Hor = ActiveSheet.HPageBreaks.Count
a = MsgBox(„das aktive Tabellenblatt enthält " & Str$(Ver) & " senkrechte sowie“ & Str$(Hor) & " waagerechte Seitenwechsel.", vbOKOnly, „Seitenwechselzählung“)
End Sub
Ansprechen kann man die Seitenwechsel über den dazugehöhrenden Index.
Mit HPageBreaks(1) spricht man den horizontalen Druckseitenwechsel von Seite 1 auf 2 an, mit HPageBreaks(2) den von Seite 2 auf Seite 3 usw.
VPageBreaks(1) entsprechend.
Positionbestimmung erfolgt mit:
ActiveSheet.HPageBreaks(1).Location
gibt die Zeilennummer des Seitenwechsels an
Seitenwechsel einfügen (hier vor Zeile 20) erfolgt mit der Add-Methode mit:
ActiveSheet.HPageBreaks.Add Before:=Range(„a20“)
oder
ActiveSheet.HPageBreaks.Add Before:=Cells(20,1)
die Seitenwechsel im Tabellenblatt zeigt man an mit:
ActiveSheet.DisplayAutomaticPageBreaks = True (bzw False)
die Seitenwechsel in der Seitenumbruchvorschau mit:
ActiveWindow.View = xlPageBreakPreview
wieder zurück in die Normalansicht mit:
ActiveWindow.View = xlNormalView
rauszufindnen, aber Worst Case wäre wohl wenn kein
Druckbereich definiert ist und der Inhalt beliebig sein kann.
Dann hängt´s nämlich noch vom Druckertreiber ab,
Gibt´s da was? Wenn ja, wäre ich für (mit)geteilte
Erkenntnisse dankbar.
Ja
)
die Festlegung des Druckbereichs ist mit:
ActiveSheet.PageSetup.PrintArea = Range(„A1:H50“).Address
Mit dem Festlegen des Druckbereiches wird ein vorher bereits eingestellte Druckbereich aufgehoben (weil überschrieben), geht auch mit „… PrintArea = Empty“
eine bestimmte Seite ausdrucken (z. Bsp. die Seiten 4 und 5):
ActiveSheet.PrintOut From:=4, To:=5
Das wär’s erstmal was mir dazu einfällt. Ein Thema wär vielleicht noch die Seitenanpassung, könnte man vielleicht über eine Schleife machen, bis VPageBreaks.Count>0 falsch ist ,dann mit:
.PageSetup.Zoom=.PageSetup.Zoom-1
Hofffe, es hilft dir ein wenig weiter.
Gru
Marion