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/3281-epilogi-arithmoi-ektyposeon-antigrafon.html)

gfevran 27-08-14 12:19

Επιλογή αριθμού εκτυπώσεων αντιγράφων
 
1 Συνημμένο(α)
Καλησπέρα,
υπάρχει τρόπος από φόρμα να επιλέγουμε αριθμό αντιγράφων προς εκτύπωση.
Π.Χ. ας πούμε η επιλογή να γίνεται από LisrBox, ComboBox,τυχαία το λέω αυτό, γιατί δεν έχω,
ιδέα αν γίνεται και πως μπορεί να γίνει.

Ευχαριστώ, για όποια απάντηση.

Tasos 27-08-14 15:47

Καλησπέρα σε όλους!

Γιώργο δοκίμασε:

Κώδικας:

Dim NumberOfCopies As Integer 'Ορισμός μεταβλητής
    NumberOfCopies = Application.InputBox(Prompt:="Επιλέξτε αριθμό αντίτυπων",  _
                                                                Title:="Αριθμός αντίτυπων...", Default:=1, Type:=1)
    If NumberOfCopies < 1 Then Exit Sub

Για να εκτυπώσεις:

Κώδικας:

PR1.PrintOut Copies:=NumberOfCopies
Καλή συνέχεια!

Τάσος

gfevran 27-08-14 16:19

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

Φιλικά
Γιώργος

Spirosgr 27-08-14 16:22

Σε αυτήν την ερώτηση σου Γιώργο
http://www.ms-office.gr/forum/excel-...ntpreview.html
στο post #4 υπάρχει ήδη η απάντηση (διαφορετική βέβαια από του Τάσου).
Υποθέτω μπορείς να βάλεις στην φόρμα ένα Combo που θα έχει αριθμούς πχ 1 - 10
για την επιλογή σελίδων.

Όπως και στην προηγούμενη ερώτησή σου
δεν καταλαβαίνω γιατί δεν διαβάζεις τις απαντήσεις και επαναλαμβάνεις
τις ίδιες ερωτήσεις...

gfevran 27-08-14 16:51

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

τη μεταβλητή την έβαλα (Dim NumberOfCopies As Integer 'Ορισμός μεταβλητής)
αυτο δεν ξέρω που να το βάλω (NumberOfCopies = Application.InputBox(Prompt:="Επιλέξτε αριθμό αντίτυπων", _
Title:="Αριθμός αντίτυπων...", Default:=1, Type:=1)
If NumberOfCopies < 1 Then Exit Sub
)
Για να εκτυπώσεις:
Κώδικας:
και αυτο το έβαλα (PR1.PrintOut Copies:=NumberOfCopies)

Spirosgr 27-08-14 20:00

Αυτός είναι ο κώδικας για την προεπισκόπηση

Κώδικας:

Private Sub cmdPrintPreview_Click()
    Dim PR1 As Range, PR2 As Range, PR3 As Range    'Ορισμός μεταβλητών
    Set PR1 = Φύλλο2.Range("$F$6:$L$16")    ' Set στις περιοχές εκτύπωσης
    Set PR2 = Φύλλο3.Range("$F$6:$L$16")
    Set PR3 = Φύλλο5.Range("$A$4:$N$23")

    If OptionButton1 Then    ' Εκκίνηση [1]
        Unload Me    ' Ξεφόρτωσε ώστε να μην υπάρχει διένεξη
        PR1.PrintPreview    ' Κάνε προεπισκόπηση
        ShowUF    ' Επαναφόρτωσε
    End If
    If OptionButton2 Then    ' Επανάληψη όσο χρειάζεται [2]
        Unload Me    ' Ξεφόρτωσε ώστε να μην υπάρχει διένεξη
        PR2.PrintPreview    ' Κάνε προεπισκόπηση
        ShowUF    ' Επαναφόρτωσε
    End If
    If OptionButton3 Then    ' Επανάληψη όσο χρειάζεται [3]
        Unload Me    ' Ξεφόρτωσε ώστε να μην υπάρχει διένεξη
        PR3.PrintPreview    ' Κάνε προεπισκόπηση
        ShowUF    ' Επαναφόρτωσε
    End If
End Sub

και αυτός για την εκτύπωση με την προσθήκη του Τάσου

Κώδικας:

Private Sub cmdPrint_Click()
    Dim PR1 As Range, PR2 As Range, PR3 As Range    'Ορισμός μεταβλητών
  Dim NumberOfCopies As Byte ' Από 0 έως 255
    NumberOfCopies = Application.InputBox(Prompt:="Επιλέξτε αριθμό αντίτυπων", _
                                          Title:="Αριθμός αντίτυπων...", Default:=1, Type:=1)

    Set PR1 = Φύλλο2.Range("$F$6:$L$16")    ' Set στις περιοχές εκτύπωσης
    Set PR2 = Φύλλο3.Range("$F$6:$L$16")
    Set PR3 = Φύλλο5.Range("$A$4:$N$23")
  If NumberOfCopies < 1 Then Exit Sub
    If OptionButton1 Then    ' Εκκίνηση [1]
        Unload Me    ' Ξεφόρτωσε ώστε να μην υπάρχει διένεξη
      PR1.PrintOut Copies:=NumberOfCopies    ' Κάνε εκτύπωση
        ShowUF    ' Επαναφόρτωσε
    End If
    If OptionButton2 Then    ' Επανάληψη όσο χρειάζεται [2]
        Unload Me    ' Ξεφόρτωσε ώστε να μην υπάρχει διένεξη
        PR2.PrintOut Copies:=NumberOfCopies    ' Κάνε εκτύπωση
        ShowUF    ' Επαναφόρτωσε
    End If
    If OptionButton3 Then    ' Επανάληψη όσο χρειάζεται [3]
        Unload Me    ' Ξεφόρτωσε ώστε να μην υπάρχει διένεξη
        PR3.PrintOut Copies:=NumberOfCopies    ' Κάνε εκτύπωση
        ShowUF    ' Επαναφόρτωσε
    End If
End Sub

Δεν βάζουμε το Combobox για να μην πάμε πιο μακρυά
Δες τους και σύγκρινε

gfevran 27-08-14 21:14

1 Συνημμένο(α)
Γεια σου Σπύρο,
μου έβγαλε σφάλμο στο σημείο του κώδικα -> Dim NumberOfCopies As Byte 'από 0 έως 255.
με απενεργοποιημένο το σημείο αυτό του κώδικα 'Dim NumberOfCopies As Byte 'από 0 έως 255,
βάζω π.χ. 2 ή 3 αντίγραφα και εκτυπώνει πάντα 1
ανεβάζω συννημένο για το σφάλμα.

Παρ’ όλα αυτά θα προτιμούσα με combobox,
όποτε μπορείς και έχεις χρόνο.

Ευχαριστώ

Spirosgr 27-08-14 22:25

1 Συνημμένο(α)
Λοιπόν Γιώργο
Στην περίπτωση του δεύτερου κώδικα το λάθος στο χτυπάει γιατί
έχεις διπλότυπα δηλωμένη μεταβλητή (*βλέπε φωτογραφία).
Κατάργησε μια από τις δύο γραμμές.
Πέρα απ ' αυτό δεν είναι ενεργοποιημένο και το Option Explicit
που «αναγκάζει» την δήλωση των μεταβλητών.

Δηλαδή εκτύπωσες χαρτιά (πραγματική εκτύπωση) και δεν έκανε 2 ή 3 αντίγραφα ;

«Παρ’ όλα αυτά θα προτιμούσα με combobox,»
Μια χαρά είναι το Inputbox !!!

gfevran 28-08-14 07:42

Καλημέρα Σπύρο,
Κατ' αρχήν κατάργησα τη μια από τις δύο γραμμές όπως μου είπες.
Όχι δεν έκανα σε χαρτί εκτυπώσεις, έχει χαλάσει η κεφαλή του εκτυπωτή μου,
αλλά έβλεπα ότι ήταν σε αναμονή στην ουρά πάντα ένα έγγραφο ενώ έδινα για εκτύπωση,
π.χ. 2 ή 3.

Διορθωτικό σημείωμα
Εκ παραδρομής και μη ώριμη σκέψη διατυπώθηκε η φράση «Παρ’ όλα αυτά θα προτιμούσα με combobox,»
ως εκ τούτου αποσύρω την πιο πάνω φράση, και θα έλεγα, θα με ενδιέφερε για λόγους εκμάθησης, με combobox.
Ζητώ Συγνώμη.

Φιλικά
Γιώργος

Spirosgr 28-08-14 09:56

Καλημέρα
Ανεξάρτητα του τι φαίνεται η εκτύπωση θα γίνει κανονικά στα επιλεγμένα αντίγραφα.
Το γιατί εμφανίζει πάντα 1 αντίγραφο ο εκτυπωτής κάποια ώρα θα το αναλύσουμε.


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

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


Search Engine Optimization by vBSEO 3.3.2