
31-07-14, 19:07
|
 | Συντονιστής Όνομα: Σπύρος Τσιλιγιάννης Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2007, Ms-Office 2010, Ms-Office 2013, Ms-Office 2016, Ms-Office 365 Γλώσσα λογισμικού Office: Ελληνική, Αγγλική | | Εγγραφή: 22-11-2011 Περιοχή: Αθήνα
Μηνύματα: 2.321
| |
Καλησπέρα
Η excel με απλές ρυθμίσεις εκτύπωσης δεν μπορεί να κάνει κάτι τέτοιο.
Την λύση δίνει η VBA.
Υποθέτουμε ένα βιβλίο με φύλλο (χ) το οποίο έχει δεδομένα σε τυχαία περιοχή d3:m268
Δημιουργούνται 12 σελίδες για εκτύπωση.
Δεν θα έχουν κεφαλίδα & και υποσέλιδο η δεύτερη = 2 και η προτελευταία = 11
Οι υπόλοιπες θα έχουν:
ΚΕΝΤΡΙΚΗ ΚΕΦΑΛΙΔΑ = "Hello"
ΔΕΞΙ ΥΠΟΣΕΛΙΔΟ = "ms-office.gr"
Βάζουμε σε μια λειτουργική μονάδα τον κώδικα: Κώδικας: Sub CustomPageHdrFdr()
'Μεταβλητές: ορισμός
Dim PrAr As Range, PgCnt As Integer, i As Integer
Dim CntrHdr As String, RgtFtr As String
CntrHdr = Sh1.PageSetup.CenterHeader
RgtFtr = Sh1.PageSetup.RightFooter
'Αρχή μέτρησης σελίδων από μηδέν
PgCnt = 0
'Πόσες είναι οι σελίδες;
PgCnt = (Sh1.HPageBreaks.Count + 1) * (Sh1.VPageBreaks.Count + 1)
'Καθάρισε κεφαλίδα & υποσέλιδο πριν ξεκινήσεις
CntrHdr = ""
RgtFtr = ""
'Αν το (i) είναι από 1 έως αριθμό σελίδων τότε:
For i = 1 To PgCnt
'Αν το (i) είναι 2 ή αν το (i) είναι αριθμός σελίδων -1 (προτελευταία) τότε:
If i = 2 Or i = PgCnt - 1 Then
'Εκτύπωσε την (i) σελίδα χωρίς κεφαλίδα ή υποσέλιδο
CntrHdr = ""
RgtFtr = ""
Sh1.PrintOut from:=i, To:=i
'Αλλιώς
Else
'Εκτύπωσε την (i) σελίδα με κεφαλίδα & υποσέλιδο όπως παρακάτω:
CntrHdr = "Hello" 'κέντρο κεφαλίδα
RgtFtr = "ms-office.gr" 'δεξί υποσέλιδο
Sh1.PrintOut from:=i, To:=i
'Κλείσε
End If
'Επανέλαβε έως να τελειώσουν οι σελίδες (i)
Next i
End Sub
'Όπου Sh1 το κωδικό όνομα του φύλλου που θα εκτυπωθεί
'Μπορείτε να χρησιμοποιήσετε & ActiveSheet αντί Sh1
Τελευταία επεξεργασία από το χρήστη Spirosgr : 01-08-14 στις 13:13.
Αιτία: ορθογραφία, σύνταξη
|