Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Seitenzahl als Funktion

Seitenzahl als Funktion
30.04.2009 19:56:15
Markus
Hallo zusammen,
im forum war leider nicht das richtige dabei was ich gesucht habe.
Ich suche eine funktion, die mir in eine Zelle die Seitenzahl einer Tabelle schriebt.
Ich kenne diese Funktion aus der Kopf/Fußzeile, aber leider nicht in der tabelle.
hoffe ihr könnt mir weiterhelfen..
danke vorab, markus
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Seitenzahl als Funktion
30.04.2009 20:20:53
Tino
Hallo,
eine bessere Idee habe ich dazu nicht.
Nachteil dieser Funktion, sie brauch recht lang zum berechnen. ;-(
Kommt in ein Modul
Function DieseSeite(rngZelle As Range) As Integer Application.Volatile DieseSeite = Sheets(rngZelle.Parent.Name).VPageBreaks.Count + _ Sheets(rngZelle.Parent.Name).HPageBreaks.Count + 1 End Function


In die entsprechende Zelle diese Formel eintragen.

 A
13

Formeln der Tabelle
ZelleFormel
A1=DieseSeite(A1)

Gruß Tino
Anzeige
Seitenzahl per Name
30.04.2009 20:41:42
Josef
Hallo Markus,
das geht über einen definierten Namen.
Tabelle1

 F
11

Formeln der Tabelle
ZelleFormel
F1=Seiten
Namen in Formeln
ZelleNameBezieht sich auf
F1Seiten=DATEI.ZUORDNEN(50)+JETZT()*0
Namen verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Sepp

Anzeige
AW: Seitenzahl als Funktion
01.05.2009 10:48:48
Beverly
Hi Markus,
noch eine VBA-Möglichkeit:

' Von Herbert Grom - Ermittlung der Druckseitenanzahl
Dim i As Integer
i = ExecuteExcel4Macro("Get.Document(50)")




Anzeige
ich glaube Markus meint es anders.
01.05.2009 12:02:17
Tino
Hallo,
er will bestimmt nicht die Anzahl der Seiten, sondern in einer Zelle die aktuelle Seite angezeigt bekommen, so wie in der Umbruchvorschau die Seitenzahl im Hintergrund als Wasserzeichen zu sehen ist.
Habe aber keine Lösung dazu.
Frage offen.
Gruß Tino
aktuelle Seite für horizontalen Seitenumbruch
01.05.2009 15:09:54
Beverly
Hi,
eine Möglichkeit, die jedoch nur für horizontale Seitenumbrüche gilt (Seitenzahl wird in Spalte F jeweis in der letzten Zeile vor dem Seitenumbruch eingtragen):

Sub Seitenzahlen_Druckseiten2()
' Von Herbert Grom - Ermittlung der Druckseitenanzahl
Dim i As Integer
i = ExecuteExcel4Macro("Get.Document(50)")
Dim loSeite As Long
Dim loZeile As Long
With ActiveSheet
For loSeite = 1 To i
If loSeite = i Then
.Cells(.HPageBreaks(loSeite - 1).Location.Row + .HPageBreaks(1).Location.Row -  _
2, 6) = "Seite " & loSeite
Else
.Cells(.HPageBreaks(loSeite).Location.Row - 1, 6) = "Seite " & loSeite
End If
Next loSeite
End With
End Sub


Beitrag als offen da nur eine mögliche Teillösung.



Anzeige
AW: aktuelle Seite für horizontalen Seitenumbruch
02.05.2009 12:25:10
Tino
Hallo,
habe auch mal etwas gebastelt, allerdings habe ich mir etwas von Beate abgekuckt. ;-)
Es werden die gleichen Seiten in die Zellen geschrieben, die auch im Seitenumbruch zu sehen sind.
Sub Test()
Dim LRow As Long, LCol As Long, LColT As Long, LPageRow As Long
Dim LCounter As Long, FindRow As Long, BreaksCount As Long

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

With ActiveSheet
    If BreaksCount > 0 Then
            On Error Resume Next
               FindRow = .Cells.Find("*", , xlValues, 2, 1, 2, False, False).Row
               FindRow = Application.Max(FindRow, .Cells.Find("*", , xlFormulas, 2, 1, 2).Row)
            On Error GoTo 0
         
         For LCol = 0 To .VPageBreaks.Count
           
                        If LCol = 0 Then
                         LColT = 1
                        Else
                         LColT = .VPageBreaks(LCol).Location.Column
                        End If
                
                For LRow = 0 To .HPageBreaks.Count
                
                        If LRow = 0 Then
                         LPageRow = 1
                        Else
                         LPageRow = .HPageBreaks(LRow).Location.Row
                        End If
                
                        If FindRow >= LPageRow Then
                           LCounter = LCounter + 1
                           If LCounter > BreaksCount Then Exit For
                           .Cells(LPageRow, LColT) = "Seite " & LCounter & " von " & BreaksCount
                        End If
                
                Next LRow
         
         Next LCol
    End If
End With
End Sub


Gruß Tino

Anzeige
meinte natürlich Karin. sorry oT.
02.05.2009 12:28:25
Tino
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Seitenzahl in Excel-Zellen einfügen


Schritt-für-Schritt-Anleitung

Um die Seitenzahl in einer Excel-Zelle anzuzeigen, kannst du eine benutzerdefinierte Funktion in VBA verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne das Visual Basic for Applications (VBA) Fenster:

    • Drücke ALT + F11, um das VBA-Fenster zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und wähle Modul.
  3. Kopiere die folgende VBA-Funktion:

    Function DieseSeite(rngZelle As Range) As Integer
       Application.Volatile
       DieseSeite = Sheets(rngZelle.Parent.Name).VPageBreaks.Count + _
                    Sheets(rngZelle.Parent.Name).HPageBreaks.Count + 1
    End Function
  4. Schließe das VBA-Fenster und kehre zur Excel-Oberfläche zurück.

  5. Verwende die Funktion in einer Zelle:

    • Gib in die gewünschte Zelle die Formel ein: =DieseSeite(A1), wobei A1 die Zelle ist, auf die du dich beziehst.

Dies zeigt die aktuelle Seitenzahl an, die der Zelle entspricht.


Häufige Fehler und Lösungen

  • Fehler: "Die eingegebene Zeichenfolge ist zu lang"

    • Überprüfe, ob die Länge deiner Formel in der Zelle die maximale Zeichenanzahl überschreitet.
  • Fehler: Die Seitenzahl wird nicht aktualisiert

    • Stelle sicher, dass die Funktion Application.Volatile im VBA-Code enthalten ist. Dies sorgt dafür, dass die Funktion bei jeder Änderung neu berechnet wird.

Alternative Methoden

Wenn du die Seitenzahl in mehreren Tabellenblättern anzeigen möchtest, kannst du die Funktion =DieseSeite(A1) in die entsprechenden Zellen jedes Tabellenblatts einfügen. Alternativ kannst du auch einen definierten Namen verwenden:

  1. Definierten Namen erstellen:

    • Gehe zu Formeln > Namensmanager > Neu.
    • Setze den Namen auf Seiten und definiere ihn mit der Formel =DATEI.ZUORDNEN(50)+JETZT()*0.
  2. Verwende den Namen in den Zellen:

    • Benutze =Seiten in der gewünschten Zelle.

Praktische Beispiele

  • Beispiel für die Nutzung in einer Tabelle:
    • Wenn du die Seitenzahl in der letzten Zeile vor einem Seitenumbruch anzeigen möchtest, kannst du den folgenden VBA-Code verwenden:
      Sub Seitenzahlen_Druckseiten2()
      Dim i As Integer
      i = ExecuteExcel4Macro("Get.Document(50)")
      Dim loSeite As Long
      With ActiveSheet
        For loSeite = 1 To i
            .Cells(.HPageBreaks(loSeite).Location.Row - 1, 6) = "Seite " & loSeite
        Next loSeite
      End With
      End Sub

Tipps für Profis

  • Automatische Seitenzahlen: Um die Seitenzahl automatisch in Zellen einzufügen, kannst du die Funktion in VBA anpassen, um mit benutzerdefinierten Bedingungen zu arbeiten.
  • Wasserzeichen nutzen: Überlege, die Seitenzahl als Wasserzeichen einzufügen. Dies kann durch die Anpassung der Druckeinstellungen und das Hinzufügen von Kopf- und Fußzeilen erfolgen.

FAQ: Häufige Fragen

1. Wie kann ich die Seitenzahl in Excel ausblenden? Um die Seitenzahl auszublenden, kannst du die entsprechende Zelle löschen oder die Formatierung ändern, sodass der Text nicht mehr sichtbar ist.

2. Kann ich die Seitenzahl über mehrere Tabellenblätter hinweg anzeigen? Ja, du kannst die Funktion DieseSeite in jedem Tabellenblatt verwenden, um die Seitenzahl anzuzeigen, oder du kannst eine VBA-Lösung implementieren, die alle Blätter berücksichtigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige