Clever-Excel-Forum

Normale Version: Auswahl der zu Druckenden Seiten über Auswahl
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe in einer Tabelle mehrere Seiten mit Text und Berechnungen aufgebaut. In der Fußzeile wird die Seite angezeigt. Nun kann es aber vorkommen, dass ich bestimmte Seiten im Ausdruck nicht benötige. Über den Punkt Seitenansicht kann ich aber nur einzelne Seitenbereiche auswählen aber nicht z.B. 2,4,8,14,

Nun habe ich einige Makros im Internet gesehen über welches ein Automatisierter Druck von diesen Seiten realisiert werden kann. Bei mir ändert sich die Festlegung welche Seiten ausgedruckt werden aber je nach Wunsch.
Ich dachte mir dazu folgendes. Auf einer Seite sind die Überschriften der Seiten aufgelistet und daneben kann ich ein X setzen welche Seiten gedruckt werden sollen. Das Makro druckt dann die Seiten aus welche ein X beinhaltet.

Ist das möglich ?

2ter Punkt

Kann die Fußzeile dann Automatisch vor Ausdruck angepasst werden ?

Gruß Daniel
Hallo Daniel,

(10.11.2015, 21:25)Daniel Albert schrieb: [ -> ]ich habe in einer Tabelle mehrere Seiten mit Text und Berechnungen aufgebaut. In der Fußzeile wird die Seite angezeigt. Nun kann es aber vorkommen, dass ich bestimmte Seiten im Ausdruck nicht benötige. Über den Punkt Seitenansicht kann ich aber nur einzelne Seitenbereiche auswählen aber nicht z.B. 2,4,8,14,

versuche es mal mit 2;4;8;14

(10.11.2015, 21:25)Daniel Albert schrieb: [ -> ]2ter Punkt

Kann die Fußzeile dann Automatisch vor Ausdruck angepasst werden ?

Nutze das BeforePrint-Ereignis.
Hallo Stefan,

gute Idee aber der Rest vom Makro fehlt noch :)
Hallo Daniel,

mal den Makrorecorder angeworfen und die einzelnen Aktionen aufgezeichnet. Ein paar Codezeilen gelöscht, weil die hier nicht interessieren und fertig.

Code:
Sub Makro1()
'
' Makro1 Makro
'

'
   With ActiveSheet.PageSetup
       .LeftHeader = "Hallo"
       .CenterHeader = "Daniel"
       .RightHeader = "wie gehts?"
       .LeftFooter = ""
       .CenterFooter = "Seite &P"
       .RightFooter = ""
       .EvenPage.LeftHeader.Text = ""
       .EvenPage.CenterHeader.Text = ""
       .EvenPage.RightHeader.Text = ""
       .EvenPage.LeftFooter.Text = ""
       .EvenPage.CenterFooter.Text = ""
       .EvenPage.RightFooter.Text = ""
       .FirstPage.LeftHeader.Text = ""
       .FirstPage.CenterHeader.Text = ""
       .FirstPage.RightHeader.Text = ""
       .FirstPage.LeftFooter.Text = ""
       .FirstPage.CenterFooter.Text = ""
       .FirstPage.RightFooter.Text = ""
   End With
End Sub
Hallo,

Das mit dem makrorecorder ist eine gute Idee. leider ist aber die Seitenzahl in dem Makro fest und nicht dynamisch. Mein Ziel wäre ja auf einer Seite alle Seitenüberschriften zu hinterlegen und über ein Auswahlfeld lege ich fest (z.B. ein X) welche Seiten ausgedruckt werden sollen. Ein Makro stellt dann diese Seiten zusammen und druckt nur diese aus. Die Seitenzahl in der Fußzeile soll angepasst werden
Hallo,

vor ein paar Jahren wurde hier mal über ein ähnliches Thema gesprochen. Vielleicht hilft dir das weiter, wobei ich die dort vorgestellte Lösung nie getestet habe.
Hallo Daniel,

ok, mit dem BeforePrint-Ereignis bekomme ich es nicht hin.

Code:
Sub prcDaniel()
   Dim lngC As Long, lngAnzahl As Long, lngBlaetter As Long
   Dim varAusdruck() As Variant
      
   On Error GoTo Fehlerbehandlung
   'die Übersicht war bei meinen Test im Bereich C9:D11 in der Tabelle1 (Tabellennamen: Spalte C, x in Spalte D
   With Worksheets("Tabelle1")
      For lngC = 9 To 11
         If .Cells(lngC, 4) = "x" Then
            lngAnzahl = lngAnzahl + Worksheets(.Cells(lngC, 3).Value).PageSetup.Pages.Count
            ReDim Preserve varAusdruck(0 To lngBlaetter)
            varAusdruck(lngBlaetter) = .Cells(lngC, 3).Value
            lngBlaetter = lngBlaetter + 1
         End If
      Next lngC
   End With
   'die bei den zu druckenden Tabellenblätter die Fußzeile setzen
   For lngC = 0 To UBound(varAusdruck)
      Worksheets(varAusdruck(lngC)).PageSetup.CenterFooter = "Seite &P von " & lngAnzahl
   Next lngC
   'drucken der Tabellenblätter
   Worksheets(varAusdruck).PrintOut preview:=True
   Exit Sub
Fehlerbehandlung:
   MsgBox "Keine Tabelle Ausgewählt", vbInformation
End Sub