Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Εκτύπωση Τιτλων σε δευτερη σελίδα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/5046-ektiposi-titlon-se-deyteri-selida.html)

LEO 15-10-18 08:29

Εκτύπωση Τιτλων σε δευτερη σελίδα
 
1 Συνημμένο(α)
Καλημέρα σε όλους ,
Θα χρειασθώ τη βοήθεια σας στο κάτωθι πρόβλημα που με απασχολεί .
Θέλω να εκτυπώσω το συνημμένο φύλλο με τις εξής παραμέτρους .
α) όταν υπάρχει 2σελίδα για εκτύπωση να εμφανίζεται ως εκτύπωση τίτλων στην δεύτερη σελίδα οι γραμμές 3 -8 (και το logo) & 36 -37
β)όταν οι γραμμές 41 έως 66 είναι κενές κατά την εκτύπωση να αποκρύπτoνται.

Ευχαριστώ.

kapetang 15-10-18 19:36

1 Συνημμένο(α)
Καλησπέρα

Σωτήρη, κάνε δοκιμές στο συνημμένο και δες αν σε καλύπτει.

LEO 16-10-18 08:37

Γιώργο καλημέρα και σε ευχαριστώ πολύ ,

Το πρόβλημα παραμένει στην περίπτωση β δηλ. όταν οι γραμμές 41 έως 66 είναι κενές τότε θέλω να τις αποκρύπτει κατά την εκτύπωση , ώστε να εκτυπώνει μόνο την μία σελίδα αν χωράει και να γράφει σελ. 1 από 1.

kapetang 16-10-18 08:53

Καλημέρα

Σωτήρη το κομμάτι του κώδικα:
Κώδικας:

    For Each c In Range("d41:d66")
        If Trim(c) = "" Then
            c.EntireRow.Hidden = True
        End If
    Next

Έπρεπε να κρύβει τις κενές γραμμές.

Ανέβασε το αρχείο που παρουσιάζει το πρόβλημα.

LEO 16-10-18 10:29

1 Συνημμένο(α)
To ανέβασα .
Επίσης παρατήρησα ότι αν αφήσεις μόνο 4 γραμμές τότε αποκρύπτει τις υπόλοιπες και τυπώνει μία αλλά γράφει σελ. 2από 2

kapetang 16-10-18 11:46

2 Συνημμένο(α)
Έκανα κάποιες αλλαγές στον κώδικα και τον δοκίμασα για τις περιπτώσεις 1 και 2 σελίδων (συνημμένο 1 και 2 αντίστοιχα).

Φαίνεται ότι λειτουργεί σωστά …

LEO 16-10-18 12:58

1 Συνημμένο(α)
Γιώργο σε ευχαριστώ πολύ ,

Το πρόβλημα τωρα είναι οτί ενώ τυπώνεται σωστά δεν γεμίζει την πρώτη σελίδα με αποτέλεσμα ενώ έχει χώρο να πηγαίνει και να τυπώνει στην δευτερη σελίδα τα υπόλοιπα είδη .

Ανέβασα ένα παράδειγμα .

kapetang 16-10-18 14:31

1 Συνημμένο(α)
Το πρόβλημα οφείλονταν στο ότι η περιοχή εκτύπωσης περιλάμβανε κάποιες κενές γραμμές κάτω από τη γραμμή TOTAL.

Περιόρισα την PrintArea μέχρι τη γραμμή 70.

Πιστεύω ότι έτσι δε θα υπάρχει πρόβλημα.

Δες το συνημμένο.

LEO 16-10-18 15:26

Σας ευχαριστώ πολύ .

kapetang 16-10-18 15:31

Καλή συνέχεια Σωτήρη.

Να είσαι καλά.

Spirosgr 17-10-18 09:41

1 Συνημμένο(α)
Καλημέρα

Χθές, ανέβασα ένα βιβλίο με την εκτύπωση, στο οποίο υπήρξε κάποιο πρόβλημα,
διότι εκ παραδρομής δεν όρισα την περιοχή εκτύπωσης...

Διέγραψα το άρθρο και ανεβάζω το νέο διορθωμένο και συμπληρωμένο.

Στο βιβλίο, υπάρχει μια εκτύπωση με παραμέτρους, που προσωπικά όπως έχω πει
και στο παρελθόν, θεωρώ, ότι πάντα πρέπει να μπαίνουν
(αν και ο κώδικας είναι αργότερος κατά λίγα δευτερόλεπτα)
αλλά έχουμε με τον τρόπο αυτό, τον απόλυτο έλεγχο της εκτύπωσης.

Στο συγκεκριμένο έργο, μπήκαν δύο γραμμές κάτω από το INVOICE τίτλο,
που επαναλαμβάνουν τις γραμμές 38-39.
Οι γραμμές είναι κρυμμένες και δεν επηρεάζουν την φόρμα του τιμολογίου.

Ο κώδικας αναλαμβάνει να τις εμφανίσει όταν πρέπει,
διότι δεν υπάρχει κανείς άλλος σωστός (κατά την γνώμη μου)
τρόπος, να έχουμε επανάληψη τίτλων σε «σπασμένες» γραμμές.

Ακόμα προστέθηκε μια λειτουργία στον κώδικα, όπου
βρίσκει πόσα PageBrakes υπάρχουν και σε ποιά γραμμή,
ωστε να μην βάζουμε καρφωτά το σπάσιμο της σελίδας, μετρώντας manual τις γραμμές.

Ο κώδικας, σκόπημα κάνει ένα loop με step 2
στην στήλη p, όταν κρύβει κενές γραμμές τιμολογίου,
για να μην εμπλακούν κελιά με merge, που κακώς χρησιμοποιούνται.

Σε άλλο φύλλο, δημιουργήθηκε μια περιοχή με ονομασμένα κελιά
που εκεί μπορούμε να βάλουμε κείμενα με το τι θα θέλαμε να εμφανίζεται στους
Headers & Footers του φύλλου.
*Προεπιλογή: Ημερομηνία και Σελίδα Χ από σελίδες Ψ

Από εκεί, μπορούμε να επιλέξουμε και τον αριθμό των αντιγράφων μας.

Σημειώσεις
Μπορεί κανείς αν θέλει, να αλλάξει τις παραμέτρους, αλλά οι επιλεγμένες,
είναι αυτές που προσωπικά χρησιμοποιώ
πχ στα περιθώρια, ενώ δεξιά κερδίζει όλο το φύλλο,
αριστερά αφήνει χώρο για τρύπες αν αρχειοθετηθεί σε κλασσέρ.

Η περιοχή εκτύπωσης, ορίστηκε ως c3:p72 μέχρι την 72 γραμμή.
Στο παράδειγμα από εκεί και κάτω βλέπω κενό.
Αν παρ' όλα αυτά, υπάρχουν κάποιες γραμμές με κείμενα μέχρι την 80,
μπορεί να αλλάξει (οριστεί εκ νέου), χωρίς πρόβλημα,
αφού αλλάξουμε και στον κώδικα την Const EndLine As Integer = 72 σε 80

Ο κώδικας μπορεί εύκολα να προσαρμοστεί,
για περισσότερες των δύο σελίδων αν αυτό είναι χρήσιμο στο μέλλον.

Στον κώδικα χρησιμοποιώ Sh1, το κωδικό όνομα του φύλλου Invoice.
Sh0, το κωδικό όνομα του φύλλου H_F_Details.

kapetang 17-10-18 11:23

1 Συνημμένο(α)
Καλημέρα

Το αρχείο που επισυνάπτω, είναι αυτό που ανέβασε ο Σπύρος, αλλά του αφαίρεσα κάποιες γραμμές.

Αν πατήσουμε το κουμπί Print θα εκτυπωθούν 2 σελίδες, στις οποίες παρατήρησα τα εξής:

1) Η 1η σελίδα περιλαμβάνει ένα μέρος της περιοχής των συνόλων και αναγράφει στο υποσέλιδο «Σελίδα 1 από 1», ενώ είναι 1 από 2.

2) Η 2η σελίδα έχει τον τίτλο και μέρος της περιοχής των συνόλων, χωρίς να περιέχει προϊόντα.

Επίσης αναγράφει στο υποσέλιδο «Σελίδα 1 από 1», ενώ είναι 2 από 2.

ΥΓ
Επειδή δεν έχω εκτυπωτή, τα παραπάνω τα παρατήρησα σε προβολή προεπισκόπησης.

Διατηρώ συνεπώς κάποια επιφύλαξη.

Spirosgr 17-10-18 12:33

Ναι σωστά το βλέπεις...

Αυτό που ανέβασα, είναι τμήμα από ολόκληρο πρόγραμμα εκτυπώσεων
στο οποίο, «στέλνει» ο κύριος κώδικας κάποιες εντολές (if) στις παραμέτρους...

Για ευνόητους λόγους, δεν ανεβάζω το πλήρες πρόγραμμα, αλλά τμήματα
τα οποία μπορεί να λειτουργήσουν στο ζητούμενο...
και γι' αυτό υπάρχουν ατέλειες...

Για να λύσεις και αυτό το θέμα, (χωρίς να ανεβάσω κάτι άλλο)
βάλε μέσα στο With Sh1.HPageBreaks:
Μετά το pb = .Item(1)....
Κώδικας:

Sh1.PageSetup.RightFooter = "Σελίδα: 1 Από 2"
και Μετά το Sh1.Rows("$8:$9").Hidden...
Κώδικας:

Sh1.PageSetup.RightFooter = "Σελίδα: 2 Από 2"
αυτά αρκούν για να «μπαλώσουν» το...σφάλμα!


Η ώρα είναι 06:19.

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


Search Engine Optimization by vBSEO 3.3.2