| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
![]() |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#1
| |||
| |||
|
Γεια σας παιδιά, Θέλω μέσα από μια UserForm μέσω τριών OptionButton να κάνω προεπισκόπηση εκτύπωσης σε τρία φύλλα (φύλλο 1, φύλλο 2, φύλλο 3) το πρόβλημα μου είναι ότι δεν μπορώ να κάνω προεπισκόπηση και στα 3 φύλλα αλλά μέχρι τα δύο! Ανεβάζω συνημμένο για περισσότερη κατανόηση του θέματος. Ευχαριστώ για όποια βοήθεια. |
|
#2
| |||
| |||
|
Καλησπέρα Γιώργο, δοκίμασε τον παρακάτω κώδικα: Κώδικας: Private Sub cmdPrintPreview_Click()
Dim vSheets As Variant
Dim vPrintAreas As Variant
Dim vOpButtons As Variant
Dim i As Long
'Εδώ ορίζονται τα φύλλα εργασίας για προεπισκόπηση
vSheets = Array("Φύλλο1", "Φύλλο2", "Φύλλο3")
'Εδώ καθορίζουμε τις αντίστοιχες περιοχές εκτύπωσης για κάθε φύλλο
sPrintArea = Array("$F$6:$L$16", "$F$6:$L$16", "$F$6:$L$16")
'Εδώ καθορίζουμε τα ονόματα των αντίστοιχων Option Buttons
vOpButtons = Array("OptionButton1", "OptionButton2", "OptionButton3")
For i = 0 To UBound(vSheets)
If Me.Controls(vOpButtons(i)).Value Then
Worksheets(vSheets(i)).PageSetup.PrintArea = sPrintArea(i)
Me.Hide
Worksheets(vSheets(i)).PrintPreview
Me.Show
Exit For
End If
Next
End Sub
|
|
#3
| |||
| |||
|
Καλημέρα Γιώργο, Σ' Ευχαριστώ για την άμεση απάντηση Δοκίμασα τον κώδικα και λειτουργεί τέλεια, είμαι εκτός Αθηνών και δεν έχω εκτυπωτή να δω αν με αυτόν τον κώδικα μπορώ να κάνω και εκτυπώσεις ή θέλει συμπληρωματικό κώδικα. Φιλικά Γιώργος |
|
#4
|
|
Καλημέρα Μιας και το είχα από παλιά και μια εκδοχή χωρίς Array & Loop με χρήση If. Κώδικας: Private Sub cmdPrintPreview_Click()
Dim PR1 As Range, PR2 As Range, PR3 As Range 'Ορισμός μεταβλητών
Set PR1 = Sheet1.Range("$F$6:$L$16") ' Set στις περιοχές εκτύπωσης
Set PR2 = Sheet2.Range("$F$6:$L$16")
Set PR3 = Sheet3.Range("$F$6:$L$16")
If OptionButton1 Then ' Αν το κουμπί (είναι true = δεν χρειάζεται) τότε
Unload Me ' Ξεφόρτωσε ώστε να μην υπάρχει διένεξη
PR1.PrintPreview ' Κάνε προεπισκόπηση (ή εκτύπωση PrintOut)
End If
If OptionButton2 Then ' Επανάληψη όσο χρειάζεται [2]
Unload Me
PR2.PrintPreview 'Για εκτύπωση βάζουμε .PrintOut Copies:=1
'και αν θέλουμε Αντικατάσταση =1 με Range("Copies1").Value και μια λίστα
'πχ 1 έως 10 για επιλογή αντιγράφων)
End If
If OptionButton3 Then ' Επανάληψη όσο χρειάζεται [3]
Unload Me
PR3.PrintPreview
End If
End Sub
Μπορείς να τεστάρεις χωρίς εκτυπωτή ως εξής: Πάμε Πίνακας ελέγχου > Συσκευές και εκτυπωτές > Microsoft XPS Document Writer και επιλογή σαν κύριο εκτυπωτή. Κάνε δοκιμή και θα έχεις ένα "εικονικά" εκτυπωμένο αρχείο στην επιφάνεια εργασίας. Ξαναβάλε τον εκτυπωτή σου σαν κύριο. |
|
#5
| |||
| |||
|
Γεια σου Σπύρο, Δούλεψε τέλεια!, και είδα και την εκτύπωση μέσω του εκτυπωτή Writer όπως μου υπέδειξες. Θα ήθελα αν γίνεται μετά την έξοδο από την προεπισκόπηση ή το τέλος της εκτύπωσης, να εμφανίζεται πάλι η userForm χωρίς να χρειάζεται να πατήσω το πλήκτρο. Σ' Ευχαριστώ Σπύρο πολλές πολλές φορές για όσα μου έχεις προσφέρει. Φιλικά Γιώργος |
|
#6
|
|
Καλησπέρα Έχεις αυτούς τους 2 κώδικες σε module Κώδικας: Sub ShowUserform()
UserForm1.Show
End Sub
Sub OpenUserform()
UserForm1.Show
End Sub
Διέγραψε τον πρώτο και βάλε τον τίτλο της sub δηλαδή μόνο το OpenUserform μετά από κάθε PR1.PrintPreview, PR2.PrintPreview και PR3.PrintPreview και πριν το End If ή Ακόμα καλύτερα μόνο μια φορά μετά το τελευταίο End If και πριν το End sub. |
|
#7
| |||
| |||
|
Ο.Κ Με την παρεμβολή OpenUserForm δούλεψε μια χαρά
|
![]() |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Η ώρα είναι 16:15.


Αλλαγή σε γραμμικό τρόπο
