Excel-Dokument ausdrucken mit fortlaufender Nummer?
Hallo!
Ich soll auf der Arbeit einen Begleitschein mit fortlaufender Nummer für unsere Mitarbeiter in Excel erstellen. Ich möchte das aber nicht manuell eingeben, da das viel Zeit in Anspruch nimmt.. Also es ist quasi wie eine Seitenzahl.
Beispiel: 1. Schein "Begleitschein Nr. 1" 2. Schein "Begleitschein Nr. 2" usw.
Ich hoffe es ist verständlich was ich meine & ich hoffe, dass mir jemand einen Lösungsweg zeigen kann, für den man nicht studiert haben muss :P
DANKE IM VORRAUS! <3
3 Antworten
Hast du mehrere Tabellen, die jeweils mit einer eigenen Seitenzahl ausgedruckt werden sollen?
Oder hast du eine Tabelle, die mehrfach ausgedruckt werden soll, jeweils mit einer eigenen Seitenzahl? In diesem Fall wüsste ich keinen Weg ohne Makro.
Es ist im Prinzip ein und das selbe Blatt nur mit jeweils anderer Begleitscheinnummer .. Ich hab auch längere Zeit heute schon gegooglet und auch nur Tipps mit sogenannten Makros gefunden. Und dafür bin ich leider zu blöd haha Wenns halt nicht anders geht, dann mach ichs eben manuell..
Klick auf Fusszeile und dort einfügen Seitenzahl, dann sollte diese beim Druck fortlaufend auf jeder Seite vorhanden sein
Also ich habe mal etwas gebastelt. Das funktioniert aber nur, wenn die Druckreihenfolge "Seiten nach unten, dann nach rechts" (Seite einrichten → Blatt → Seitenreihenfolge) ist.
Sub Seite() Dim i Dim j Range("A2").Value = "Seite 1" ' fängt sonst erst beim ersten Umbruch an For i = 1 To Tabelle2.HPageBreaks.Count Set rZelleSpalte1 = Range(Tabelle2.HPageBreaks(i).Location.Address).Offset(1, 0) rZelleSpalte1.Value = "Seite " & (i + 1) For j = 1 To Tabelle2.VPageBreaks.Count If i = 1 Then _ Cells(2, VPageBreaks(j).Location.Column).Value = "Seite " & (i + (Tabelle2.HPageBreaks.Count + 1)) Cells(rZelleSpalte1.Row, VPageBreaks(j).Location.Column).Value = "Seite " & (i + (Tabelle2.HPageBreaks.Count + 2)) Next Next End Sub
Bei mir ist Tabelle2 die Tabelle, auf der die Seitenzahlen eingefügt werden sollen und zwar immer in die erste Spalte der zweiten Zeile der Seite.
Da wir mit Umbrüchen hantieren, müssen wir die Zellen am Anfang direkt referenzieren.
Nun kann ich eine weitere Variante anbieten, bei der du im Excelarbeitsblatt einfach nur
="Seite" & Personal.xlsb!Seite()
eingeben brauchst.
Lege dir in dem VBA-Projekt Personal.xlsb (standardmäßig verfügbar) ein Modul mit folgendem Code an:
Public Function Seite() As Integer
' Gibt die Seite zurück, auf der sich die Zelle mit der Formel Seite befindet
' Seitenreihenfolge: erst oben-unten, dann links-rechts
' 03.06.2015
Dim bGefunden As Boolean
Dim i As Integer
Dim j As Integer
Dim iSelfZeile As Integer
Dim iSelfSpalte As Integer
Dim iStartTemp As Integer
Seite = 0
iSelfZeile = Application.Caller.Row
iSelfSpalte = Application.Caller.Column
' Horizontale Seitentrenner durchsuchen
bGefunden = False
For i = 1 To ActiveSheet.HPageBreaks.Count
iStartTemp = 0
If i > 1 Then _
iStartTemp = ActiveSheet.HPageBreaks(i - 1).Location.Row
If (iStartTemp < iSelfZeile) And _
(ActiveSheet.HPageBreaks(i).Location.Row > iSelfZeile) Then
Seite = i
bGefunden = True
End If
Next
If bGefunden = False Then _
Seite = i
' Vertikale Seitentrenner durchsuchen
bGefunden = False
For j = 1 To ActiveSheet.VPageBreaks.Count
iStartTemp = 0
If j > 1 Then _
iStartTemp = ActiveSheet.VPageBreaks(j - 1).Location.Column
If (iStartTemp < iSelfSpalte) And _
(ActiveSheet.VPageBreaks(j).Location.Column > iSelfSpalte) Then
Seite = Seite + (j - 1) * (ActiveSheet.HPageBreaks.Count + 1)
bGefunden = True
End If
Next
If Not bGefunden Then _
Seite = Seite + (j - 1) * (ActiveSheet.HPageBreaks.Count + 1)
End Function
Wenn du davon eine Excelformel machen willst, musst du die Zelle, deren Seitenzahl bestimmt werden soll, als Argument übergeben. (Oder hat jemand eine Idee, wie man in einer selbsterstellten Excelfunktion die Zelle herausfindet, in der die Formel eingetragen wurde?)
Mit dieser Zelladresse prüfst du, in welcher der von den Seitenumbrüchen aufgespannten Zellbereiche sie enthalten ist.