| Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
| | Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
|
#4
| ||||
| ||||
|
Σου έδωσα ένα παράδειγμα χωρίς να γνωρίζω τυχόν ιδιαιτερότητες και λεπτομέρειες. Ο κώδικας αυτός δεν έχει κάποιο λάθος. Αυτά που κάνει είναι: Ανοίγει ένα ένα τα βιβλία, εκτυπώνει τα φύλλα που πρέπει και τελικά τα κλείνει χωρίς αποθήκευση. Αν υπάρχει το φύλλο (πχ, το φύλλο "ΑΠΟΔΕΙΞΕΙΣ") τότε αν υπάρχει "YES" στο κατάλληλο κελί κάθε φορά (στήλες E, J, O) θα επιχειρήσει να εκτυπώσει. Αν δεν υπάρχει το φύλλο θα γράψει "Error!" Αν η εκτύπωση σταλεί στον εκτυπωτή χωρίς να προκληθεί σφάλμα θα γράψει "ΟΚ!". Διαφορετικά θα γράψει "Error!" Αν στο κελί υπάρχει "NO" τότε ο κώδικας δεν θα προχωρήσει στην εκτύπωση του φύλλου και θα γράψει "No Action". Αν ο εκάστοτε εκτυπωτής δεν εκτυπώσει τότε θα πρέπει να αναζητήσεις την αιτία του προβλήματος στον εκτυπωτή. Όχι στην Excel. Αυτό ισχύει και για τον εκτυπωτή PDF. Έκανες τις απαραίτητες ρυθμίσεις σ' αυτόν τον εκτυπωτή; Παράθεση:
Δεν μπορώ να γνωρίζω τι δεν πάει καλά αφού το μόνο που βλέπω είναι το αρχείο Excel που επισύναψες. Δεν είμαι μπροστά στον υπολογιστή σου . Αυτό που μπορώ να κάνω είναι να προσθέσω τη δυνατότητα ελέγχου αν και τα τρία φύλλα έχουν την τιμή "NO" και έτσι να μην ανοίξει το βιβλίο χωρίς λόγο (δεν διευκρινίστηκε στο αρχικό σου μήνυμα). Άλλαξε λοιπόν τον κώδικα του συνημμένου μου με τον παρακάτω: Κώδικας: Sub XLPrintJob()
Dim wks As Worksheet, wb As Workbook, c As Range, i As Integer, x As Integer
With Application
.ShowWindowsInTaskbar = False
.EnableEvents = False
.Calculation = xlCalculationManual
.ScreenUpdating = False
End With
On Error Resume Next
For Each c In ActiveSheet.Range("A3:A" & Range("A" & Rows.Count).End(xlUp).Row)
x = 1
If Dir(c.Value, vbDirectory) <> vbNullString Then
If c.Offset(, 4).Value = "NO" And _
c.Offset(, 9).Value = "NO" And _
c.Offset(, 14).Value = "NO" Then GoTo NextWB
Set wb = Workbooks.Open(Filename:=c.Value, ReadOnly:=True)
For i = 1 To 3
Set wks = wb.Sheets(c.Offset(, x).Value)
If Err <> 0 Then
c.Offset(, 15 + i).Value = "Error!"
Err.Clear
GoTo NextWks
End If
If c.Offset(, x + 3).Value = "YES" Then
wks.PrintOut _
From:=c.Offset(, x + 1).Value, _
To:=c.Offset(, x + 2).Value, _
ActivePrinter:=c.Offset(, x + 4).Value, _
Collate:=True
If Err <> 0 Then
c.Offset(, 15 + i).Value = "Error!"
Err.Clear
Else
c.Offset(, 15 + i).Value = "OK!"
End If
Else
c.Offset(, 15 + i).Value = "No Action"
End If
NextWks:
x = x + 5
Next
wb.Close SaveChanges:=False
End If
NextWB:
Next
With Application
.ShowWindowsInTaskbar = True
.EnableEvents = True
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
End With
End Sub
Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 11-06-12 στις 10:47. |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
| ||||
| Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
| [VBA] VBA - Αντιγραφή πολλών κελιών σε ένα. | spavlos | Excel - Ερωτήσεις / Απαντήσεις | 11 | 27-09-17 10:05 |
| Ένωση πολλών αρχείων Word σε ένα με χρήση Access | dimmag | Access - Ερωτήσεις / Απαντήσεις | 2 | 21-02-14 18:58 |
| [Excel07] Εισαγωγή πολλών φύλλων σε ενα αθροιστικό | oliveoilmill | Excel - Ερωτήσεις / Απαντήσεις | 8 | 08-11-13 10:29 |
| [VBA] Δημιουργία Backup πολλών αρχείων | mak | Excel - Ερωτήσεις / Απαντήσεις | 7 | 23-07-11 19:21 |
| [ Πίνακες ] Συγχώνευση πολλών τιμών σε ένα πεδίο 2 | dimitris p | Access - Ερωτήσεις / Απαντήσεις | 3 | 16-04-11 17:53 |
Η ώρα είναι 16:40.



Θεματικός Τρόπος
