Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Excel07] Κεφαλίδα & υποσέλιδο (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/3254-kefalida-yposelido.html)

sotisanis 30-07-14 21:28

Κεφαλίδα & υποσέλιδο
 
Παιδια καλησπερα
Θελω αν μπορειτε λιγο την βοηθεια σας
Πως μπορω να επιλεξω σε ποιες σελιδες θα φαινεται το υποσελιδο και η κεφαλιδα?
πχ δεν θελω να φαινεται στην 2 σελιδα και στην πρωτελευταια.

Spirosgr 31-07-14 19:07

Καλησπέρα
Η 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


sotisanis 04-08-14 19:19

Σπυρο καλησπερα.Συγνωμη που δεν απαντησα αλλα τωρα ειδα το email σου γιατι ημουν διακοπες!!!!!!! εχω δυο προβληματα με τον κωδικα που μου εδωσες!!το πρωτο ειναι οτι θελω να το αποθηκευω ως pdf και οχι να το εκτυπωνω!!! και το δευτερο ειναι οτι θελω στην κεφαλιδα να βαλω αριστερα και κεντρο δυο διαφορετικες εικονες και στο υποσελιδο να βαλω μορφοποιημενο στο αριστερο "Τιμοκατάλογος προϊόντων 2014 - Ισχύει από τις 01/01/2014" αλλα σε μπλε χρωμα και στο κεντρο το νουμερο της σελιδας!!!

Spirosgr 05-08-14 09:15

Καλημέρα
1 . «...δεν απαντησα αλλα τωρα ειδα το email σου γιατι...»
Δεν καταλαβαίνω ποιο e-mail αναφέρεις
2 . Οι κώδικες που δίνουμε είναι παραδειγματικοί.
Δείχνουν τον τρόπο ώστε να γίνει μια εργασία.
Προσάρμοσέ τον στις ανάγκες σου

sotisanis 05-08-14 09:24

εννοω την απαντηση σου,
αυτο που δεν ξερω ειναι πως θα το βαλω να εχει εικονα αντι για κειμενο και πως θα το βαλω να κανει αποθηκευση ως pdf αντι για εκτυπωση

Spirosgr 05-08-14 23:04

Καλησπέρα
Η δημιουργία pdf μπορεί να γίνει από την excel χωρίς VBA.

Επιλέγουμε τις ρυθμίσεις από το το ίδιο σημείο με την εκτύπωση > και μετά > Save As pdf.

Μια καταγραφή και λίγες διορθώσεις δίνουν τον παρακάτω κώδικα
που κάνει "ικανοποιητικά" την δουλειά > Δημιουργία Pdf στο Ενεργό φύλλο,
με κεφαλίδα 2 εικόνες και υποσέλιδο κείμενο και αρίθμηση σελίδων.

Κώδικας:

Sub CreatePdfWithFtrHdr()
    ActiveSheet.PageSetup.LeftHeaderPicture.Filename = _
    "Διαδρομή εικόνας\Ονομασία εικόνας.τύπος αρχείου πχ.png"
    ActiveSheet.PageSetup.CenterHeaderPicture.Filename = _
    "Διαδρομή εικόνας\Ονομασία εικόνας.τύπος αρχείου πχ.png"
    Application.PrintCommunication = False
    With ActiveSheet.PageSetup
        'Εικόνες
        .LeftHeader = "&G"
        .CenterHeader = "&G"
        'Γραμματοσειρά Arial,Bold και χρώμα μπλε & Τίτλος
        .LeftFooter = "&""Arial,Bold""&K08+000Τιμοκατάλογος προϊόντων 2014-Ισχύει από 1/1/2014"
        .RightFooter = "Σελίδα&P από &N"
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlPortrait
        .FirstPageNumber = xlAutomatic
    End With
    Application.PrintCommunication = True
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
                                    "C:\Users\Διαδρομή\Όνομα_αρχείου.pdf", Quality:=xlQualityStandard, _
                                    IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
                                    False
End Sub


sotisanis 07-08-14 17:15

το μονο προβλημα που προς το παρον ειναι οτι δεν ξερω πως να αλλαξω τον προσανατολισμο της σελιδας.

Spirosgr 20-08-14 11:56

Καλημέρα
Επιλέξτε στο σημείο
.Orientation =

.Orientation = xlPortrait
.Orientation = xlLandscape

για εναλλαγή μεταξύ όρθιας ή πλάγιας εκτύπωσης της σελίδας.


Η ώρα είναι 10:11.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2