AW: Gruppierung zum Drucken sperren
05.06.2018 23:14:41
fcs
Hallo Ildar,
mit den folgenden Anpassungen wird der zu druckende Bereich bei Bedarf auf ein Blatt verkleinert.
Dazu werden die aktuellen Einstellungen im Seiten-Layout zwischengespeichert, angepasst und nach dem Drucken wieder auf die vorherigen Werten zurückgesetzt.
Gruß
Franz
Sub Drucken_Auswahl()
'Druckt via Checkbox (Kontrollkästchen) ausgewählte Gruppieungen _
und/oder Zellbereche
Dim wks As Worksheet
Dim rngPrint As Range
Dim Zeile_oben&, Zeile_unten&, Spalte_links&, Spalte_Rechts&
Set wks = ActiveSheet
With wks
If .Shapes("Kontrollkästchen 1").ControlFormat.Value = 1 Then
Call prcShapeRange(.Shapes("Gruppe Dreiecke"), Zeile_oben, _
Zeile_unten, Spalte_links, Spalte_Rechts)
End If
If .Shapes("Kontrollkästchen 2").ControlFormat.Value = 1 Then
Call prcShapeRange(.Shapes("Gruppe Rechtecke"), Zeile_oben, _
Zeile_unten, Spalte_links, Spalte_Rechts)
End If
If .Shapes("Kontrollkästchen 3").ControlFormat.Value = 1 Then
Call prcRangeRange(.Range("A12:C22"), Zeile_oben, _
Zeile_unten, Spalte_links, Spalte_Rechts)
End If
If .Shapes("Kontrollkästchen 4").ControlFormat.Value = 1 Then
Call prcShapeRange(.Shapes("Gruppe Form 1"), Zeile_oben, _
Zeile_unten, Spalte_links, Spalte_Rechts)
End If
Drucken:
If Zeile_oben = 0 Then
MsgBox "Keine Checkbox für Drucken ausgewählt!"
Else
Dim varZoom, varFitToPagesTall, varFitToPagesWide
With .PageSetup
'Aktuelle Einstellungen merken
varZoom = .Zoom
varFitToPagesTall = .FitToPagesTall
varFitToPagesWide = .FitToPagesWide
'Einstellungen für Drucken des Bereichs auf eine Seite setzen
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
End With
Set rngPrint = .Range(.Cells(Zeile_oben, Spalte_links), _
.Cells(Zeile_unten, Spalte_Rechts))
rngPrint.Select
Selection.PrintOut Copies:=1, Collate:=True
Range("A2").Select
'gemerkte Einstellungen wieder herstellen
With .PageSetup
.Zoom = varZoom
.FitToPagesTall = varFitToPagesTall
.FitToPagesWide = varFitToPagesWide
End With
End If
End With 'wks
End Sub