![]() |
εξαγωγη στοιχειων απο πολλα φυλλα 1 Συνημμένο(α) Χρονια Πολλα με υγεια και ευτυχια για ολους μας Θα ηθελα την βοηθεια σας στο συννημενο υποδειγμα το οποιο πηρα από τα ετοιμα αντιστοιχα που υπαρχουν στο excel. Προσπαθησα να δημιουργησω έναν συγκεντρωτικο πινακα σε νέο φυλλο οπου θα φαινονται τα στοιχεια (πελατης-τρεχον υπολοιπο) από πολλα φυλλα (στον συννημενο εχω τρια φυλλα αλλα θα προσθεσω κι αλλα), ώστε ανα πασα στιγμη να βλεπω σε ένα φυλλο τον πελατη και το τρεχον υπολοιπο καθως και το γενικο συνολο υπολοιπων ολων των πελατων. Οσες φορες και αν προσπαθησα μου βγαζει μηνυμα ότι χρειαζονται δεδομενα τουλαχιστον από δυο γραμμες , όταν δε ορισα περισσοτερες μου εβγαζε τους αυξοντες αριθμους. Μηπως θα πρεπει να δημιουργησω καποια λιστα μονη μου και όχι ετοιμα προσχεδια; |
1 Συνημμένο(α) Καλησπέρα Βούλα, Καλή χρονιά και πάντα με υγεία! Έφτιαξα το νέο φύλλο ΙΣΟΖΥΓΙΟ ΠΕΛΑΤΩΝ με τρεις στήλες για τον κάθε πελάτη: ΧΡΕΩΣΗ: το σύνολο της χρέωσης κάθε φύλλου πελάτη (Χρέωση Περιόδου) ΠΙΣΤΩΣΗ: το σύνολο της πίστωσης κάθε φύλλου πελάτη, (Πίστωση Περιόδου) ΥΠΟΛΟΙΠΟ: το σύνολο υπολοίπου πελάτη, όπως απεικονίζεται στο κελί G4 του αντίστοιχου φύλλου. Πατώντας το κουμπί ΕΝΗΜΕΡΩΣΗ ΙΣΟΖΥΓΙΟΥ, καθαρίζονται όλες οι γραμμές του νέου φύλλου και ενημερώνονται με τα νέα δεδομένα που θα υπάρχουν στα αντίστοιχα φύλλα πελατών. Στο νέο φύλλο, το όνομα κάθε πελάτη αποτελεί και σύνδεσμο στο αντίστοιχο φύλλο του ώστε να σε διευκολύνει στον έλεγχο των συνόλων. Δηλαδή πατώντας πάνω στο όνομα, μεταφέρεσαι στο κελί D7 του συγκεκριμένου φύλλου. Στο φύλλο ΙΣΟΖΥΓΙΟ ΠΕΛΑΤΩΝ η στήλη Α ενημερώνεται από το κελί D7 του κάθε φύλλου πελάτη, γιατί θεωρώ ότι εκεί θα υπάρχει πάντα το όνομά του. Αν πρέπει όμως να γράφεις κι άλλα πράγματα, όπως π.χ. αιτιολογία κίνησης, αριθμό τιμολογίου κ.τ.λ., τότε θα πρέπει να υπάρχει ένα κελί (ίσως αριστερά από το τρέχον υπόλοιπο) όπου θα παραμένει σταθερό η επωνυμία του πελάτη. Το φύλλο περιέχει μακροεντολές, οπότε θα πρέπει να τις έχεις ενεργοποιημένες ώστε να λειτουργεί το κουμπί. Ότι απορίες/βελτιώσεις έχεις, εδώ είμαστε! :) |
Ευχαριστω για την αμεση ανταποκριση. Θα το μελετησω και θα επανελθω. Οτι και να πω ειναι λιγο. Καθε φορα που απογοητευομαι επειτα απο προσπαθεια ημερων η βοηθεια σας ειναι λυτρωτικη. Εισθε ολοι υπεροχοι. Και παλι ευχαριστω |
Καλημερα σε ολη την ομαδα Και παλι Ευχαριστω για την βοηθεια η καλλιτερα .. λυση που μου εδωσες. Ακριβως οτι χρειαζομουν. Εισαι καταπληκτικος. Αν δεν σε κουραζω, και για να μαθαινω, μια και ειμαι εντελως αρχαρια, θα ηθελες να μου πεις πως εφτιαξες τον πινακα, η να με προσανατολισεις καπως ωστε να αρχισω να κανω καποια δειλα εστω βηματα και να δημιουργω μονη μου; Δεν ειναι σωστο καθε φορα να μου δινετε ετοιμη τροφη. Σε ευχαριστω και παλι |
Χαίρομαι που το αρχείο θα σου φανεί χρήσιμο στη δουλειά σου! :) Ο σχεδιασμός του πίνακα, όχι η μορφοποίηση των κελιών, βασίζεται πάνω σε προγραμματισμό χρησιμοποιώντας τη γλώσσα VBA (Visual Basic for Applications). Αν θέλεις να ασχοληθείς με VBA θα πρέπει να έχεις και κάποιες βασικές γνώσεις προγραμματισμού (σύνταξη εντολών, χρήση μεταβλητών κ.τ.λ). Μια καλή αρχή πάντως για να δεις πώς λειτουργεί η όλη λογική των μακροεντολών με VBA είναι η "μαγνητοσκόπηση" κάποιων συγκεκριμένων καθημερινών κινήσεων με το κουμπί τέρμα κάτω αριστερά στο παράθυρο του Excel με το κόκκινο κυκλάκι. Ο κώδικας που ευθύνεται για τη συμπλήρωση του ισοζυγίου είναι ο παρακάτω: Κώδικας: Option Explicit- Αφού σε ρωτήσει αν θέλεις να συνεχίσεις και απαντήσεις καταφατικά, τότε ελέγχει ένα-ένα το όνομα κάθε φύλλου ξεχωριστά. Αν είναι διαφορετικό από το "ΙΣΟΖΥΓΙΟ ΠΕΛΑΤΩΝ", τότε θεωρεί ότι είναι καρτέλα πελάτη (γι' αυτό θέλει προσοχή όλα τα νέα φύλλα-καρτέλες που θα ανοίγεις να έχουν την ίδια ακριβώς γραμμογράφηση με τα υπόλοιπα). - Από την κάθε καρτέλα πελάτη λοιπόν, παίρνει το όνομα που βρίσκεται στο κελί D7 και το αντιγράφει στο πρώτο κενό κελί του ισοζυγίου στη στήλη A. Η ίδια ακριβώς λογική ακολουθείται για τη χρέωση, πίστωση και υπόλοιπο (στήλες B, C, D αντίστοιχα), όπου στη χρέωση και πίστωση μεταφέρει τα αντίστοιχα αθροίσματα από τις στήλες E και F των καρτελών, ενώ στο υπόλοιπο μεταφέρει το ποσό που βρίσκει στο κελί G4. Ελπίζω να μην σε μπέρδεψα... |
1 Συνημμένο(α) Καλησπέρα. Αγαπητέ Χρήστο. Χωρίς να θέλω να μειώσω την προσπάθειά σου, θα ήθελα να σου πω ότι ο κώδικας, δεν είναι τόσο απλό πράγμα όσο φαίνεται... Αν δεν έχεις ασφαλιστικά, δεν μπορείς να έχεις ένα σωστό αποτέλεσμα. Τι θα γίνει για παράδειγμα, αν ο χρήστης στο βιβλίο αυτό, έχει κάποιο φύλλο, έστω Sheet1, με στατιστικά στοιχεία χ... Για δες το αρχείο και δοκίμασε κάτι άλλο... |
Ναι, το γνωρίζω αυτό. Δεν έχω βάλει καθόλου μέτρα ασφαλείας στον κώδικα, π.χ. έλεγχο αν μια τιμή είναι αριθμός ή κείμενο για να μη χτυπήσει σφάλμα. Γι' αυτό το λόγο ανέφερα και στη Βούλα παραπάνω, όλα τα φύλλα που υπάρχουν μέσα στο αρχείο θα πρέπει να έχουν ακριβώς την ίδια γραμμογράφηση με τις υπόλοιπες καρτέλες ώστε να μην υπάρχουν φύλλα όπως το παράδειγμά σου. Μερικοί έλεγχοι πάντως που ίσως βοηθούσαν για τη "σωστή" επιβεβαίωση του φύλλου είναι: 1) Αν το κελί B1 είναι ίσο με "ΙΣΟΖΥΓΙΟ ΛΟΓΑΡΙΑΣΜΟΥ". 2) Αν οι επικεφαλίδες είναι στη θέση τους, κ.α. Αν θέλει η Βούλα να προσθέσω τέτοιου είδους ελέγχους, ευχαρίστως. Αν όμως διατηρεί πάντα την ίδια γραμμογράφηση σε όλα τα υπόλοιπα φύλλα, δε θεωρώ ότι υπάρχει λόγος για περισσότερους ελέγχους, πλην των τιμών (π.χ. αν είναι πληκτρολογηθεί κείμενο αντί αριθμού). |
Από την στιγμή που έχουμε αυτοματισμό, δεν υπάρχει ... «Αν όμως διατηρεί πάντα την ίδια γραμμογράφηση σε όλα τα υπόλοιπα φύλλα, δε θεωρώ ότι υπάρχει ...» Ποτέ δεν ξέρεις τι θα κάνει ο χρήστης... Από την άλλη... «πλην των τιμών (π.χ. αν είναι πληκτρολογηθεί κείμενο αντί αριθμού).....» παρ' όλο που σου έβαλα να αθροίσει μια στήλη με κείμενα (Ε) σε => (Β) το αποτέλεσμα ήταν μηδέν (0) και το έγραψε δεν «χτύπησε»...κάποιο σφάλμα παρ' όλο που δεν υπάρχει έλεγχος... .Range("B" & R).Value = Application.WorksheetFunction.Sum(Sht.Range("E:E") ) *Σημείωση Οι Αμερικάνικοι κώδικες έχουν απίστευτα λάθη... |
1 Συνημμένο(α) Χρηστο και Σπυρο, Καλημερα και χιλια "ευχαριστω" για τις συμβουλες σας. Ειναι πολυτιμες. Χρηστο μου ακολουθησα τις οδηγιες σου σχετικα με τις εντολες VBA αν και λογω αγνοιας μου φαινονται βουνο. Κατεβασα καποιες οδηγιες, βημα-βημα που βρηκα στο διαδικτυο και ηδη ξεκινησα "αυτοδιδασκαλια" Οσον αφορα το συνημενο, οντως ολα τα φυλλα θα ειναι τα ιδια (αλλαζουν μονον ποσα-ονοματα). Το μονο που προσθεσα ειναι ΣΠ και απεικονηση. Σπυρο, Μηπως ηταν λαθος μου; Το επισυναπτω να το δειτε. Πολλα -πολλα ευχαριστω. Δεν εχω λογια |
Καλημέρα Αυτό ακριβώς προσπάθησα να εξηγήσω στον Χρήστο, στο προηγούμενο post. Όχι το να προσθέσεις, αφαιρέσεις, τροποποιήσεις φύλλα δεν είναι λάθος σου. Αλλά δεν «δουλεύει» ο συγκεκριμένος κώδικας σωστά... Για να «πάρεις» την λειτουργία αυτού του κώδικα, δεν θα πρέπει να κάνεις στο βιβλίο καμία απολύτως αλλαγή, πλήν προσθήκης πανομοιότυπων φύλλων πελατών... Παρεπιμπτόντως, οι καρτέλες που πήρες από το template, δεν είναι ότι καλύτερο... |
Καλημέρα σας, Όπως είχα επισημάνει και πριν τη σωστή παρέμβαση του Σπύρου, πρέπει να δοθεί προσοχή στα νέα φύλλα που δημιουργούνται ώστε να είναι πάντα της ίδιας μορφής. Αν πρέπει να δημιουργούνται νέα φύλλα στο βιβλία, μια ιδέα για να εξαιρούνται από τον κώδικα είναι να έχουν συγκεκριμένη ονοματολογία όταν τα μετονομάζουμε, π.χ. <Φύλλο1>, -καρτέλες, δηλαδή να βάζουμε συγκεκριμένους χαρακτήρες στο όνομά του και να προσαρμόσουμε ανάλογα τον κώδικα για εξαίρεση των φύλλων αυτών. Όπως όλοι οι κώδικες έχουν ένα συγκεκριμένο σκοπό και έχουν τη δυνατότητα να αναβαθμίζονται, έτσι και ο συγκεκριμένος δημιουργήθηκε ως δείγμα να δοκιμαστεί αρχικά από το χρήστη και μετά αφού τον επεξεργαστεί να επισημάνει τι αλλαγές χρειάζεται να γίνουν. Βούλα, αν χρειάζεσαι να κάνουμε βελτιώσεις για αποφυγή μελλοντικών σφαλμάτων του κώδικα, είμαστε στη διάθεσή σου. Μερικές καλές βελτιώσεις στο κώδικα και τη διαμόρφωση των καρτελών είναι οι εξής: 1) Διαγραφή των κενών γραμμών για συρρίκνωση των καρτελών. 2) Χρησιμοποιώντας την επικύρωση των δεδομένων στις στήλες χρέωση και πίστωση να εισάγονται μόνον αριθμοί και έλεγχος αν το διπλανό κελί είναι κενό (δεν μπορεί να υπάρχει χρέωση-πίστωση ταυτόχρονα σε μια γραμμή). 3) Προτεινόμενες στήλες: ΗΜΕΡΟΜΗΝΙΑ - ΑΡΙΘΜΟΣ ΠΑΡΑΣΤΑΤΙΚΟΥ - ΑΙΤΙΟΛΟΓΙΑ - ΧΡΕΩΣΗ - ΠΙΣΤΩΣΗ - ΥΠΟΛΟΙΠΟ. Ίσως να χρειάζονται και προοδευτικά σύνολα χρέωσης-πίστωσης. 4) Συγκεκριμένη περιοχή στην αρχή της καρτέλα, όπου να υπάρχουν τα στοιχεία κάθε πελάτη. 5) Δημιουργία νέας καρτέλας με κουμπί. 6) Έλεγχος για νέα φύλλα εργασίας τα οποία πρέπει να εξαιρούνται από την ενημέρωση του ισοζυγίου. |
Ναι το φαντασθηκα εκ των υστερων, εχεις δικιο. Αν δεν κανω λαθος περιοριζει τις δυνατοτητες απο αυτες που θα ειχα αν δημιουργουσα καποιον πινακα. Παντως σας ευχαριστω και τα δυο παιδια για την βοηθεια σας και την αμεσοτητα της ανταποκρισης |
| Η ώρα είναι 11:11. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.