Autor Thema: Gesamtseitenzahlen auf jedem Arbeitsblatt beim Öffnen automatisch neu berechnen  (Gelesen 88 mal)

Ole

  • Gast
Hallo liebe Community

Ich habe das Problem, dass ich in einer Arbeitsmappe die Gesamtseitenzahl jedes Arbeitsblattes in eine Zelle eintragen soll und sich dieser Wert auch stetig aktualisieren soll.

Über die Names-Option =DATEI.ZUORDNEN(50+JETZT()*0) und die Formel =INDEX(AnzahlSeiten;0) habe ich schon hinbekommen, dass die Seitenzahlen in den Zellen stehen.

Beim Öffnen der Arbeitsmappe wird nun allerdings jedes Feld zuerst mit 1 belegt und wenn ich manuell über die gesamte Mappe mir die Druckansicht zeigen lasse und dann F9 drücke, aktualisiert das Programm auch die Seitenzahlen.

Meine Frage ist ob ich den Vorgang irgendwie mittels VBA generieren kann?

Über Makroaufzeichnung erhalte ist bislang nur die Seitenzahl des ersten Blattes auf jedem Blatt

Sub AnzahlSeitenAkt()
    Sheets(Array("ITP-Legend", "ITP-Steps-Pump", "ITP-Steps-Piping", _
        "ITP-Steps-System", "ITP-Steps-Painting", "ITP-List-Procedure", _
        "ITP-List-Procedure (Special)", "ITP-List-Responsible")).Select
    Sheets("ITP-Legend").Activate
    Calculate
End Sub

Vielen Dank für eure Bemühen schonmal

MfG Ole

 
IP gespeichert

maninweb

  • Microsoft Excel MVP
  • Supermoderator
  • Guru
  • *****
  • Beiträge
    : 949
  • Microsoft Excel MVP
    • Excel Ticker
Hallo,

meines Wissens ist das Abfragen der Seitenzahl per Excel4-Makro etwas unzuverlässig. Zudem kenne ich mich mit Excel4-Makros
nicht so gut aus, als dass ich eine vollständige Antwort geben könnte. Leider verhält es sich mit dem HPageBreaks-Objekt ebenfalls
unzuverlässig, was sich aber durch das kurze Anzeigen der Druckvorschau beheben lässt. Ein Beispielcode...

Code: Visual Basic
  1. Sub Test()
  2.  
  3.   Dim wks As Worksheet
  4.  
  5.   Application.ScreenUpdating = False
  6.  
  7.   For Each wks In ThisWorkbook.Worksheets
  8.     wks.Activate
  9.     ActiveWindow.View = xlPageBreakPreview
  10.     wks.Cells(1, 1).Value = (wks.HPageBreaks.Count + 1) * (wks.VPageBreaks.Count + 1)
  11.     ActiveWindow.View = xlNormalView
  12.   Next
  13.  
  14.   Application.ScreenUpdating = True
  15.   ThisWorkbook.Worksheets(1).Select
  16.  
  17. End Sub

Den müsstest Du testen bzw. modifizieren. Der Code schreibt die Seitenzahl als Wert in Zelle A1.
Nebenbei, als Dokumentation, sei auf folgende Links/Artikel in Englisch verwiesen...

- DailyDoseOfExcel, Page Of Pages In A Cell
- ExcelForum, Excel-Macro-Functions

Im erstgenannten Artikel sind auch die Kommentare interessant. Und, am besten die Datei
herunterladen, dann passen sich die Formeln auf Deutsch an.

Gruß



Mein Buch ist erschienen - Microsoft Excel VBA Programmierung - für Excel 2007 bis 2013 - auch als E-Book.
Letzte Änderung: 2017-02-17 14:14:01 von maninweb
 
IP gespeichert

Werbung

 

An- und Abmeldung

 
 

Tools

Werbung