07.09.2017, 10:49
Hallo zusammen,
Zur Erläuterung:
Ich wollte ein Code erzeugen, mit dem der Benutzer nur die "aktiven" Seiten in der Tabelle "Ausgabe" druckt, die in der gelb markierten Zelle etwas stehen hat ( die rechte Seite mit Nebenwerten gehört immer zur Seite mit den Hauptwerten ). Die zu druckenden Seiten befinden sich in grau eingerahmten Bereichen ( siehe angehängte Datei ).
hier meine Frage:
ich möchte gern die folgende Programmierung dahingehen ändern, dass man dem Benutzer überlässt mit welchem Drucker/PDF er drucken soll und dass ( bei PDF-Druck ) alle "aktiven" Seiten in einer PDF-Datei gedruckt werden. Mit dem momentanen Code werden alle "aktiven" Seiten hintereinander einzeln gedruckt am hinterlegten Drucker, d.h. dass der Benutzer nicht die Wahl hat zu entscheiden wie gedruckt werden soll ( ob auf Papier oder PDF ). Hier der Code:
Sub Drucken()
Dim i As Long
Dim lastRow As Long
Dim myStep As Long
Dim rngGelb As Range
Dim rngPrint1 As Range
Dim rngPrint2 As Range
Application.ScreenUpdating = False
With Worksheets("Ausgabe")
.Visible = True
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
myStep = i + 57
Set rngGelb = .Range("A" & i + 8)
If rngGelb <> "" Then
Set rngPrint1 = .Range("A" & i & ":O" & myStep - 1)
.PageSetup.PrintArea = rngPrint1.Address
'.PrintPreview
.PrintOut
Set rngPrint2 = .Range("Q" & i & ":AE" & myStep - 1)
.PageSetup.PrintArea = rngPrint2.Address
'.PrintPreview
.PrintOut
End If
i = myStep
Next i
'oder: .Visible = xlVeryHidden
.Visible = Hide
.DisplayAutomaticPageBreaks = False
End With
Set rngPrint1 = Nothing
Set rngPrint2 = Nothing
Set rngGelb = Nothing
End Sub
Kann mir da jemand behilflich sein?
Danke schon Mal ;)
Gruß
Andy
test.xlsm (Größe: 114,4 KB / Downloads: 5)
Zur Erläuterung:
Ich wollte ein Code erzeugen, mit dem der Benutzer nur die "aktiven" Seiten in der Tabelle "Ausgabe" druckt, die in der gelb markierten Zelle etwas stehen hat ( die rechte Seite mit Nebenwerten gehört immer zur Seite mit den Hauptwerten ). Die zu druckenden Seiten befinden sich in grau eingerahmten Bereichen ( siehe angehängte Datei ).
hier meine Frage:
ich möchte gern die folgende Programmierung dahingehen ändern, dass man dem Benutzer überlässt mit welchem Drucker/PDF er drucken soll und dass ( bei PDF-Druck ) alle "aktiven" Seiten in einer PDF-Datei gedruckt werden. Mit dem momentanen Code werden alle "aktiven" Seiten hintereinander einzeln gedruckt am hinterlegten Drucker, d.h. dass der Benutzer nicht die Wahl hat zu entscheiden wie gedruckt werden soll ( ob auf Papier oder PDF ). Hier der Code:
Sub Drucken()
Dim i As Long
Dim lastRow As Long
Dim myStep As Long
Dim rngGelb As Range
Dim rngPrint1 As Range
Dim rngPrint2 As Range
Application.ScreenUpdating = False
With Worksheets("Ausgabe")
.Visible = True
lastRow = .Cells(Rows.Count, "A").End(xlUp).Row
For i = 1 To lastRow
myStep = i + 57
Set rngGelb = .Range("A" & i + 8)
If rngGelb <> "" Then
Set rngPrint1 = .Range("A" & i & ":O" & myStep - 1)
.PageSetup.PrintArea = rngPrint1.Address
'.PrintPreview
.PrintOut
Set rngPrint2 = .Range("Q" & i & ":AE" & myStep - 1)
.PageSetup.PrintArea = rngPrint2.Address
'.PrintPreview
.PrintOut
End If
i = myStep
Next i
'oder: .Visible = xlVeryHidden
.Visible = Hide
.DisplayAutomaticPageBreaks = False
End With
Set rngPrint1 = Nothing
Set rngPrint2 = Nothing
Set rngGelb = Nothing
End Sub
Kann mir da jemand behilflich sein?
Danke schon Mal ;)
Gruß
Andy
test.xlsm (Größe: 114,4 KB / Downloads: 5)