kyrinja
Goto Top

Zellinhalt in Excel-Kopfzeile übernehmen

Guten Tag,

stehe vor dem Problem, das ich Excellisten drucken Soll Welche folgendermaßen aufgebaut sind:

Seite
Lager von bis

RWL Nicht-Kühlware I 1 45
RWL-TA 46 48
RWL Kühlware 49 60

In der Kopfzeile rechts soll dann das Lager stehen und die Entsprechenden Seitenzahlen auf den jeweiligen Seiten.

Also Auf Seite 1 Steht dann RWL Nicht-Kühlware I Seite 1/300 -> und das ganze dann bis zur Seite 45
Auf Seite 46 Steht dann RWL-TA Seite 46 / 48 - Auch hier wieder von Seite 46 bis Seite 48


Gibt es eine Möglichkeit das zu automatisieren ?

Content-ID: 324940

Url: https://administrator.de/contentid/324940

Ausgedruckt am: 22.11.2024 um 16:11 Uhr

131381
131381 28.12.2016 aktualisiert um 12:22:11 Uhr
Goto Top
Zitat von @Kyrinja:
> Gibt es eine Möglichkeit das zu automatisieren ?
Mit VBA bestimmt
Excel Daten vergleichen bei Übereinstimmung drucken
In der Eigenschaft PageSetup kannst du die Kopf und Fußzeilen nach Bedarf ändern.

Gruß
colinardo
Lösung colinardo 28.12.2016 aktualisiert um 15:58:38 Uhr
Goto Top
Servus Kyrinja,
mit etwas VBA lässt sich das wie @131381 schon andeutete machen.

Hier ein Beispiel:

Wenn die Daten die du hier aufgelistet folgendermaßen in deinem aktiven Sheet stehen:

screenshot

Dann kannst du mit diesem Code die Seiten mit den gewünschten Kopfzeilen versehen. Es wird hier beim Ausdruck die gesamte Arbeitsmappe gedruckt.
Sub PrintMyDokWithCustomHeaders()
    Dim cell As Range, intFrom As Integer, intTo As Integer
    With ActiveSheet
        For Each cell In .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)  
            intFrom = cell.Offset(0, 1).Value
            intTo = cell.Offset(0, 2).Value
            For Each sh In Sheets
                With sh.PageSetup
                    .RightHeader = cell.Text & " | Seite &P/&N"  
                    .OddAndEvenPagesHeaderFooter = False
                    .DifferentFirstPageHeaderFooter = False
                End With
            Next
            ActiveWorkbook.PrintOut intFrom, intTo, Collate:=True
        Next
    End With
End Sub
Grüße Uwe