Δημιουργία συγκεντρωτικού πίνακα με τιμές από κλειστά αρχεία 2 Συνημμένο(α) Καλησπέρα σας. Αρχικά και σαν καινούργιος στο φόρουμ καταθέτω τον χαιρετισμό μου και ελπίζω μέσα από τις συμβουλές σας να διαφωτίσω και εγώ με τη σειρά μου τον επόμενο συμφορουμίτη που θα έχει κάποια απορία. Όσο για το ερώτημα μου, Υφίσταται ένας φάκελος με πανομοιότυπα αρχεία Excel όσον αφορά διάταξη και μορφοποίηση, τύπου Φόρμα Συμπλήρωσης Στοιχείων. Τα εν λόγω αρχεία αυξάνονται με τη πάροδο του χρόνου (καινούργιες εγγραφές) . Ο σκοπός μου ήταν να δημιουργήσω ένα πίνακα όπου θα συγκεντρώνει τιμές από συγκεκριμένα κελιά από το κάθε αρχείο. Η θέση των ζητούμενων κελιών είναι ίδια σε όλα τα αρχεία. "Ψαρεύοντας" έναν κώδικα ο οποίος περίπου εκτελούσε την ενέργεια που ήθελα, πέρασα τις δικές μου παραμέτρους, τον αναπαρήγαγα τόσες φορές όσο και ο αριθμός των κελιών που ήθελα να εμφανίζονται στο συγκεντρωτικό πίνακα, και έδεσα το όλο "μείγμα" σε ένα ωραιότατο command button!!! Όλα δούλευαν ρολόι μέχρι που έφτασε η στιγμή να αναβαθμιστώ από Office 2003 σε Office 2010. Σε αυτό το σημείο μου χτύπησε το παράθυρο ο κος Debuger, σκέφτηκα μήπως έπρεπε να αλλάξω τους τύπους αρχείων σε .xlsx, αλλά τελικά η απειρία μου σήκωσε τα χέρια ψηλά και αποφάσισα να απευθυνθώ σε κάποιον πιο έμπειρο. Επισυνάπτω μία κενή φόρμα και το αρχείο όπου εφαρμόζεται ο κώδικας, επειδή... ας μη γελιόμαστε... ένας κώδικας είναι καλύτερος από χίλιες λέξεις (και ας περιέχει μόνο 5!!!) Ευχαριστώ εκ των προτέρων για το χρόνο σας και υπόσχομαι δωρεάν μπύρες για 1 χρόνο σε όποιον με βοηθήσει να λύσω αυτή τη σπαζοκεφαλιά! |
Καλημέρα Application.Run "Report.xlsm!Φύλλο1.LoopThruBooks1" Το αρχείο report έχει επέκταση xlsm, και εδώ γίνεται το ΄σπάσιμο του κώδικα Θανάσης |
Γιαννη το προβλημα σου ειναι σχετικα απλο αλλαξε τα παρακατω ΠΡΩΤΟ Private Sub CommandButton1_Click() Application.Run "Report.xlsm!Φυλλο1.LoopThruBooks1" End Sub και μετα σε ολες της ρουτινες p = "το path που ειναι τα αρχεια σου " f = Dir(p & "*.xlsx") φιλακια περιμενω μπυρες ξερεις που |
1 Συνημμένο(α) Αρχικά ευχαριστώ Θανάση και Γιώργο για τις απαντήσεις τους. Τη συγκεκριμένη μέθοδο την είχα εφαρμόσει χωρίς επιτυχία. Οπότε και αυτή τη φορά δεν άλλαξε κάτι. Βέβαια σε αυτό το σημείο πρέπει να αναφέρω κάτι που διαπίστωσα κάνοντας διάφορα πειράματα. Αρχικά γύρισα όλα τα αρχεία σε xlsm. Μετά γύριζα ένα ένα τα αρχεία σε xlsx και ταυτόχρονα έτρεχα τον κώδικα Αποτέλεσμα να μου εμφανίζει μία μία τις εγγραφές στο συγκεντρωτικό πίνακα. Και σε αυτό το σημείο βρήκα το ουσιαστικό πρόβλημα. 2 αρχεία είχαν στο όνομα τους απόστροφο (') (με πληκτρολόγιο γυρισμένο στα αγγλικά)!!! Μόλις έδινα σε κάποιο από αυτά τα 2 αρχεία τύπο xlsx, τα διάβαζε ο κώδικας και σκάλωνε!!! Οπότε μία μικρή απλή μετονομασία έλυσε το πρόβλημα! :thumbup: Όπως και να έχει τις μπύρες τις έταξα και είστε ευπρόσδεκτοι. Τώρα αν θέλετε να τις κερδίσετε με την αξία σας έχω έναν άλλο γρίφο ο οποίος θα αναφερθεί σε σχετικό thread λίαν συντόμως. :dft012: Χάριν αποσαφήνισης βέβαια θα μπορούσε κάποιος να με διαφωτίσει για ποιο λόγο η απόστροφος επηρέαζε τον κώδικα? Καθαρά ακαδημαϊκό ενδιαφέρον! Επισυνάπτω και το τελικό αποτέλεσμα |
αν δεν απατομε το (') στην VBA ειναι χαρακτηρας που απο εκει και περα οτι υπαρχει τα περνει σαν σχολιο |
1 Συνημμένο(α) Καλησπέρα στην παρέα! Γιάννη, φρόντισε να αποφεύγεις τα συγχωνευμένα κελιά ειδικά όταν χρησιμοποιείς VBA. Βάλε τον παρακάτω κώδικα σε μια κοινή λειτουργική μονάδα (Module) και δοκίμασε: Κώδικας: Option Explicit Καλή συνέχεια! Τάσος |
Η ώρα είναι 19:08. |
Ms-Office.gr - ©2000 - 2024, Jelsoft Enterprises Ltd.