Καλημέρα σε όλους!
Πιστεύω να είστε καλά!
Στο βιβλίο που επισυνάπτω έχω στο ίδιο φύλλο 7 περιοχές, τις οποίες χρειάζομαι να είναι:
όλες περιοχές εκτύπωσης,
με περιθώρια 0,7 σε όλες τι πλευρές,
να προσαρμόζονται σε όλη τη σελίδα (π.χ. αν στο ύψος έχει προσαρμοστεί και όχι στο πλάτος, θα ρυθμίσω το πλάτος των στηλών χειροκίνητα εξ αρχής, μετά δε θα αλλάζει αυτό, ή αντίστροφα),
με επιλογή μου μέσα από το φύλλο να ορίζεται Landscape ή Portrait
Παρακάτω παραθέτω τον κώδικα για να κάτω τα παραπάνω:
Κώδικας:
Sub PrintPreviewNamedRanges()
Dim ws As Worksheet
Dim namedRanges As Variant
Dim rangeName As Variant
Dim namedRange As Range
Dim orientation As XlPageOrientation
Dim cellValue As String
Set ws = ThisWorkbook.Sheets("Εκτυπώσεις")
namedRanges = Array( _
Array("Περιοχή1", ws.Cells(84, 9)), _
Array("Περιοχή2", ws.Cells(85, 9)), _
Array("Περιοχή3", ws.Cells(86, 9)), _
Array("Περιοχή4", ws.Cells(87, 9)), _
Array("Περιοχή5", ws.Cells(88, 9)), _
Array("Περιοχή6", ws.Cells(89, 9)), _
Array("Περιοχή7", ws.Cells(90, 9)) _
)
Application.ScreenUpdating = False
For Each rangeName In namedRanges
On Error Resume Next
Set namedRange = ws.Range(rangeName(0))
On Error GoTo 0
If namedRange Is Nothing Then
MsgBox "Named range '" & rangeName(0) & "' not found.", vbExclamation
Else
ws.PageSetup.printArea = namedRange.Address
cellValue = rangeName(1).Value
Select Case cellValue
Case "Portrait"
orientation = xlPortrait
Case "Landscape"
orientation = xlLandscape
Case Else
orientation = xlPortrait
End Select
With ws.PageSetup
.orientation = orientation
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 1
.TopMargin = Application.InchesToPoints(0.7)
.BottomMargin = Application.InchesToPoints(0.7)
.LeftMargin = Application.InchesToPoints(0.7)
.RightMargin = Application.InchesToPoints(0.7)
End With
ws.PrintPreview
End If
Next rangeName
Application.ScreenUpdating = True
End Sub
Αυτό που δεν μπορώ να καταφέρω είναι το εξής: αν διαγράψω το
ws.PrintPreview από τον κώδικα, παύουν να είναι όλες ορισμένες περιοχές εκτύπωσης.
Μου ανοίγει ενα παράθυρο προεπισκόπισης που εμφανίζει κάθε φορά από μια περιοχή, και για να δω την επόμενη πρέπει να κλείσω το υπάρχον παράθυρο.
Υπάρχει τρόπος να μην υπάρχει αυτό στον κώδικα, να διατηρούνται ως περιοχές εκτύπωσης και οι 7 Περιοχές και να βλέπω την προεπισκόπηση μόνο εάν το επιλέξω εγώ από την προεπισκόπιση και εκτύπωση πάνω από την κορδέλα;
Φυσικά πάντα ευπρόσδεκτες επισημάνσεις, παρατηρήσεις και διορθώσεις!
Σας ευχαριστώ