Καλημέρα
Ναι είναι
ακριβώς αυτό που ζητάς, σε
αντίθεση με τον κώδικα που πρότεινε ο Γιώργος
ο οποίος εκτυπώνει
όλη την UsedRange, και όχι συγκεκριμένη περιοχή...
Κώδικας:
Sub SaveFileAsPDF()
Dim SavePath As String, FolderName As String
Dim UName As String, WhereToSave As String
Dim PrintRange As Range, FileName As Range
Set PrintRange = Sheet1.Range("myPrintRange")'Όνομα περιοχής που θα εκτυπωθεί
Set FileName = Sheet1.Range("myInvNumber")'Όνομα περιοχής που περιέχει Αρ. Τιμολογίου
UName = "Spirosgr"'Όνομα χρήστη
WhereToSave = "Desktop"'Σημείο υπολογιστή που θα αποθηκευθεί
FolderName = "INVBackUp"'Όνομα φακέλου αποθήκευσης
SavePath = "C:\Users\" & UName & "\" & WhereToSave & "\" & FolderName
PrintRange.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
SavePath & "\" & FileName & ".pdf", Quality:= _
xlQualityMinimum, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub
Στον κώδικα αρκεί να
αλλάξουμε τις παραμέτρους του παραδείγματος,
με αυτά που
θέλουμε στο βιβλίο μας
*Όπου έχει πράσινη γραμματοσειρά
Set PrintRange = Sheet1.Range("myPrintRange") ονόμασε την περιοχή σε myPrintRange ή πληκτρολόγησε
Set PrintRange = Sheet1.Range("a1:g7")
Set FileName = Sheet1.Range("myInvNumber") ονόμασε ένα κελί σε myInvNumber ή όπως θέλεις και βάλε μέσα τον τίτλο pdf ή
άλλαξέ το με μεταβλητή τίτλου
UName = "Spirosgr" άλλαξε με το δικό σου όνομα χρήστη
WhereToSave = "Desktop" κράτησέ το ή άλλαξε με ότι θέλεις πχ Documents
FolderName = "INVBackUp" άλλαξέ το με όνομα φακέλου των pdf σου πχ MyPdf
*Στο σημείο που θα αποθηκεύσεις πχ Desktop, βάλε φάκελο με το όνομα αυτό
Τέλος το OpenAfterPublish:=False ή True εμφανίζει ή όχι το pdf, μετά την αποθήκευση...
Σημείωση
Το path αποθήκευσης, μπορεί να μετατραπεί στο ίδιο path με το αρχείο excel
Ο κώδικας αφορά το παράδειγμα του link και μόνο (post #2)