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/6502-apothikeysi-arxeioy.html)

ChrisGT7 30-05-24 21:00

Καλησπέρα Νίκο,

Δοκίμασε τον παρακάτω κώδικα:
Κώδικας:

Option Explicit

Sub APO8HKEYSH()
    Dim MyPath As String
    MyPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator
   
    With ActiveWorkbook
        .SaveCopyAs MyPath & [LastYear]
        .SaveAs MyPath & [NextYear]
    End With
End Sub

Σύμφωνα με όσα προαναφέρθηκαν παραπάνω και το παράδειγμά σου:
- Στο LastYear θα υπάρχει η τιμή Αρχείο\Το βιβλίο μου 2024 (Για αρχείο).xlsm
- Στο NextYear Το βιβλίο μου 2025.xlsm
- Και στην επιφάνεια ο φάκελος Αρχείο.

Immortal 30-05-24 21:43

Χρήστο καλησπέρα
Νομίζω πως όλα δουλεύουν άριστα :thumbup1:
Σας ευχαριστώ πολύ για την βοήθεια Χρήστο και Τάσο να είστε καλά!
Καλό βράδυ :happy:

Immortal 01-06-24 10:29

Παράθεση:

Αρχική Δημοσίευση από ChrisGT7 (Μήνυμα 35757)
Καλησπέρα Νίκο,

Δοκίμασε τον παρακάτω κώδικα:
Κώδικας:

Option Explicit

Sub APO8HKEYSH()
    Dim MyPath As String
    MyPath = CreateObject("WScript.Shell").SpecialFolders("Desktop") & Application.PathSeparator
   
    With ActiveWorkbook
        .SaveCopyAs MyPath & [LastYear]
        .SaveAs MyPath & [NextYear]
    End With
End Sub

Σύμφωνα με όσα προαναφέρθηκαν παραπάνω και το παράδειγμά σου:
- Στο LastYear θα υπάρχει η τιμή Αρχείο\Το βιβλίο μου 2024 (Για αρχείο).xlsm
- Στο NextYear Το βιβλίο μου 2025.xlsm
- Και στην επιφάνεια ο φάκελος Αρχείο.

Καλημερα Χρήστο, καλό μήνα με υγεία!
Ολοκληρώνοντας κάτι έρχονται ιδέες και για αλλά πράγματα κι έτσι σκέφτηκα πως με τον ίδιο ακριβώς τρόπο, θα μπορούσα να αποθηκεύω και τις ενεργές περιοχές κάποιων φύλλων σε μορφή pdf, αυτό που πρόκειται να εκτυπωθεί δηλαδή.
Οπότε, ακολούθησα τις οδηγίες σου για άλλη μια φορά, γίνεται η διαδικασία κ αποθηκεύονται τα pdf στην διαδρομή που έχω ορίσει.
Το πρόβλημα που συναντώ είναι πως ενώ το pdf αρχείο υπάρχει, δεν μου το ανοίγει.
Μήπως με τη συγκεκριμένη διαδικασία δεν αποθηκεύονται οι ενεργές περιοχές ως έγγραφα αλλά τα φύλλα του βιβλίου γενικότερα;

ChrisGT7 01-06-24 13:21

Καλησπέρα Νίκο,

Ελπίζω ο ο παρακάτω κώδικας να σε καλύψει προσαρμόζοντάς τον στο δικό σου:
Κώδικας:

    [B10:D50].ExportAsFixedFormat _
        Type:=xlTypePDF, _
        Filename:=MyPath & "MyFile.pdf", _
        Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

Ο παρακάτω κώδικας αποθηκεύει το εύρος B10:D50 (το αλλάζεις σύμφωνα με τις ανάγκες σου) ως αρχείο pdf στη διαδρομή που του έχεις θέσει στη μεταβλητή MyPath, όπως είχαμε αναφέρει τις προάλλες.

Το όρισμα OpenAfterPublish με True ανοίγει το αρχείο μετά την αποθήκευση ενώ με False παραμένει κλειστό.

Immortal 02-06-24 07:37

Καλημέρα Χρήστο.
Θα το δοκιμάσω και θα σε ενημερώσω.
Όσον αφορά το [B10:D50], υπάρχει άλλος τρόπος να δέχεται η εντολή την ενεργή περιοχή του φύλλου;

ChrisGT7 02-06-24 08:31

Καλημέρα Νίκο,

Λέγοντας "ενεργή περιοχή του φύλλου", θεωρώ πως εννοείς το επιλεγμένο εύρος.

Δοκίμασε αντί εύρος να βάλεις τη λέξη Selection.

Immortal 02-06-24 12:56

Χρήστο δεν ξέρω αν εννοούμε το ίδιο :005:
Πιθανόν όχι, γιατί το Selection αποθηκεύει το κελί που έχω επιλεγμένο εκείνη την στιγμή. (Αυτά συμβαίνουν όταν μπλέκομαι με τα πίτουρα :a068:)
Εννοώ αυτό που ορίζω ως περιοχή εκτύπωσης.

ChrisGT7 02-06-24 14:59

Νομίζω τώρα είναι πιο ξεκάθαρο! :003:

Οπότε αντί για Selection, δοκίμασε αυτό το εύρος να κάνεις σε pdf: Range(ActiveSheet.PageSetup.PrintArea)

Immortal 02-06-24 20:39

Να είσαι καλά βρε Χρήστο σε ευχαριστώ!
Τώρα ξετυλίχθηκε το κουβάρι κ βρέθηκε η άκρη :thumbup:


Η ώρα είναι 16:51.

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


Search Engine Optimization by vBSEO 3.3.2