adpanos Δημοσιεύτηκε Οκτώβριος 10, 2016 #1 Κοινοποίηση Δημοσιεύτηκε Οκτώβριος 10, 2016 (edited) Παιδιά θα ήθελα να μάθω κατά πόσο είναι δυνατό σε ένα πίνακα ο οποίος έχει επαναλαμβανόμενα προιόντα (ίδιος κωδικός προιόντος στήλη Β), με διαφορετική ημερομηνία καταχώρησης (στήλη Α), να δώ άλλες στήλες εκ δεξιών. Να μου επιστρέφει δηλαδή δεδομένα που ανήκουν στο Α προιόν που παράχθηκε την Α ημέρα , τις πρώτες ύλες .... που χρησιμοποιήθηκαν . Εφτιαξα μια μακροεντολή η οποία ανάλογα με την ημερομηνία που βάζω στο φύλλο ελέγχου (φύλλο 1) , κάνει φιλτράρισμα στον πίνακα δεδομένων (φύλλο 2) και στην συνέχεια εφάρμ ωσα vlookup, πιστεύοντας πως θα βλέπει τα προιόντα μετά το φιλτράρισμα και δεν θα συμπίπτει σε 2 ίδιες εγγραφές. Παρόλα αυτά δεν δουλεύει .... Ξέρει κανείς κάτι? Μπορεί να με βοηθήσει στο πως θα το πετύχω ? Έγινε επεξεργασία Οκτώβριος 10, 2016 από adpanos Link to comment Share on other sites More sharing options...
adpanos Οκτώβριος 10, 2016 Author #2 Κοινοποίηση Οκτώβριος 10, 2016 Παίδες το έφτιαξα χωρίς vlook up απλά θέλει πολύ γράψιμο σε κώδικα. Ευχαριστώ πάντως όσους το διάβασαν 1 Link to comment Share on other sites More sharing options...
karmen1983 Οκτώβριος 10, 2016 #3 Κοινοποίηση Οκτώβριος 10, 2016 Είδες; Και μόνο που άνοιξες θέμα στον Λάμπη έφτανε για να σου έρθει η επιφοίτηση 3 Link to comment Share on other sites More sharing options...
adpanos Οκτώβριος 10, 2016 Author #4 Κοινοποίηση Οκτώβριος 10, 2016 (edited) Εξαχνα να το κάνω με vlookup μπας και γλυτώσω το γράψιμο κώδικα.... Αλλο να θέτεις σε πόσες στήλες προς τα δεξιά υπάρχει η τιμή που θα επιστραφεί στο αντίστοιχο κελί και άλλο να θέτεις string για κάθε επιστρεφόμενη τιμή και να παίζεις με dim a as date dim e as string dim mer as string ..... ... ... a = ActiveSheet.Range("g2").Value e= ActiveSheet.Range("g3").Value Worksheets("Á_ÕËÅÓ").Activate for i=1 to 5000 if mpla mpla mpla .... = and mpla mpla mpl;a 2 If ActiveSheet.Range("a" & i).Value = a And ActiveSheet.Range("c" & i).Value = e then mer1 = ActiveSheet.Range("g" & i).Value mer2 = ActiveSheet.Range("h" & i).Value .... .... .... .... end if next i Worksheets("öýëëï åëÝã÷ïõ").Activate ActiveSheet.Range("h8") = mer ActiveSheet.Range("h9") = mer1 ActiveSheet.Range("h10") = mer2 ... ... ... ... .. . Αλλά δεν γίνεται να το αποφύγω ... Αν έχει κανείς κανέναν καλύτερο τρόπο θα του άναβα λαμπάδα ... γατί τα data είναι πολλά. Έγινε επεξεργασία Οκτώβριος 10, 2016 από adpanos Link to comment Share on other sites More sharing options...
dpolal Οκτώβριος 10, 2016 #5 Κοινοποίηση Οκτώβριος 10, 2016 Στο φύλλο 2 έχεις την στήλη Α με τις ημερομηνίες και την στήλη Β με τον κωδικό του προϊόντος. Οι κωδικοί επαναλαμβάνονται αλλά υπάρχει περίπτωση να έχεις ένα προϊόν με την ΙΔΙΑ ημερομηνία;;; Σε περίπτωση που έχεις το ίδιο είδος ΑΛΛΑ με διαφορετικές ημερομηνίες τότε με την παρακάτω συνάρτηση θα έχεις το αποτέλεσμα που θέλεις. Παράθεση {=INDEX(Φύλλο2!$A$2:$G$11;MATCH(1;($A2=Φύλλο2!$A$2:$A$999)*($B2=Φύλλο2!$B$2:$B$999);0);3)} {=INDEX(Φύλλο2!$A$2:$G$11;MATCH(1;($A3=Φύλλο2!$A$2:$A$999)*($B3=Φύλλο2!$B$2:$B$999);0);4)} {=INDEX(Φύλλο2!$A$2:$G$11;MATCH(1;($A4=Φύλλο2!$A$2:$A$999)*($B4=Φύλλο2!$B$2:$B$999);0);5)} ... {=INDEX(Φύλλο2!$A$2:$G$11;MATCH(1;($A2=Φύλλο2!$A$2:$A$999)*($B2=Φύλλο2!$B$2:$B$999);0);999)} - Γράφεις την συνάρτηση και η αγκύλη ενεργοποιείται με CTRL+SHIFT+ENTER για να παίξει - τσιμπάει τις τιμές Ημερ. & Κωδικός, τις ματσάρει στο Φύλλο 2 και σου επιστρέφει την τιμή του κελιού από το αριθμό στο τέλος της συνάρτησης Το καταλαβαίνεις πώς παίζει; (για κάποιο λόγο δεν μπορώ να επεξεργαστώ τα posts μου οπότε γράφω συνέχεια νέα ) Πάρε και το αρχείο που έκανα τις δοκιμές. TEST.xlsx 2 Link to comment Share on other sites More sharing options...
adpanos Οκτώβριος 11, 2016 Author #6 Κοινοποίηση Οκτώβριος 11, 2016 Είσαι θεός .! Δεν το είχα σκεφτεί με αυτό τον τρόπο. Πολύ πολύ πιο απλό από αυτό που έκανα. Θα το δοκιμάσω άμεσα. Link to comment Share on other sites More sharing options...
adpanos Οκτώβριος 16, 2016 Author #7 Κοινοποίηση Οκτώβριος 16, 2016 (edited) On 10/10/2016 at 9:54 ΜΜ, το μέλος dpolal έγραψε: Στο φύλλο 2 έχεις την στήλη Α με τις ημερομηνίες και την στήλη Β με τον κωδικό του προϊόντος. Οι κωδικοί επαναλαμβάνονται αλλά υπάρχει περίπτωση να έχεις ένα προϊόν με την ΙΔΙΑ ημερομηνία;;; Σε περίπτωση που έχεις το ίδιο είδος ΑΛΛΑ με διαφορετικές ημερομηνίες τότε με την παρακάτω συνάρτηση θα έχεις το αποτέλεσμα που θέλεις. - Γράφεις την συνάρτηση και η αγκύλη ενεργοποιείται με CTRL+SHIFT+ENTER για να παίξει - τσιμπάει τις τιμές Ημερ. & Κωδικός, τις ματσάρει στο Φύλλο 2 και σου επιστρέφει την τιμή του κελιού από το αριθμό στο τέλος της συνάρτησης Το καταλαβαίνεις πώς παίζει; (για κάποιο λόγο δεν μπορώ να επεξεργαστώ τα posts μου οπότε γράφω συνέχεια νέα ) Πάρε και το αρχείο που έκανα τις δοκιμές. TEST.xlsx Μόλις ολοκλήρωσα το εγχείρημα και όλα πλέον δουλεύουν! Να κάνω και μια άλλη ερώτηση αν ξέρεις? Στην δουλειά μου έχω φτιάξει 11 πρότυπα βιβλία εργασίας, τα οποία απευθύνονται σε αποθήκες αναλωσίμων , αποθήκες προσωρινής εναπόθεσης προιόντων βάσης , αποθήκες ενδιάμεσων προιόντων, αποθήκες πρώτων υλών, αποθήκες τελικών προιόντων και βιβλία παραγγελιών ανά πελάτη, βιβλία σύνοψης παραγωγής , βιβλία εντολής παραγωγής προς το εκάστοτε τμήμα σε σχέση με το σύνολο παραγγελιών και το σύνολο των προγνώσεων ανά πελάτη και με βάση τα διαθέσιμα αποθήκης, μακροεντολές για πρόγνωση ζήτησης με κυλυόμενους μέσου όρους ώστε να υπάρχει ασύγχρονη παραγωγή σε σχέση με τις παραγγελίες χωρίς όμως να ξεφεύγουμε από τους στόχους κ.λ.π. Όλα αυτά τα πρότυπα βιβλία με μια μακροεντολή , create_new_day_macro ... κλωνοποιούνται καθημερινά σε νέα βιβλία με κατάληξη την ημερομηνία εργασίας και η μακροεντολή δίνει τις απαιτούμενες συνδέσεις μεταξυ τους. Από εκεί και πέρα σε κάθε βιβλίο υπάρχει το φύλλο συνδέσεων με τα άλλα βιβλία, το οποίο είναι και φύλλο συνόνου για το βιβλίο αυτό, ενώ ταυτόχρονα υπάρχει και ένα φύλλο πρότυπο (template) το οποίο κλωνοποιείται μέσω μακροεντολών και παίρνει τις απαιτούμενες συνδέσεις ως προς το φύλλο συνόλου. Με τόσο κώδικα και τόσα links που ενημερώνονται, πλέον η κατάσταση έχει γίνει πολύ βαριά για το σύστημα. Εδώ λοιπόν έρχεται το ερώτημα αν μπορεί να αποσυμφωρηθεί η κατάσταση με το να μην παρουσιάζονται στην οθόνη οι συσχετισμοί που δίνει η εκάστοτε μακροεντολή κατά την εκτέλεσή της , γιατί από εκεί νομίζω πως έρχεται αρκετή από την καθηστέρηση στους χρόνους κλωνοποίησης των templates και των νέων εξαρτήσεων μεταξύ των φύλλων και των βιβλίων. Ξέρεις κανείς πως μπορώ να ζητήσω να μην μου κάνει οπτική εναλλαγή κατάστασης το excel, έως την στιγμή που θα ολοκληρωθεί ο κύκλος της μακροεντολής ? Ευχαριστώ. Έγινε επεξεργασία Οκτώβριος 16, 2016 από adpanos Link to comment Share on other sites More sharing options...
dpolal Οκτώβριος 17, 2016 #8 Κοινοποίηση Οκτώβριος 17, 2016 I λοστ γιού νάου. Σόρρυ αλλά αυτά είναι πολύ πάνω από το επίπεδο μου. Link to comment Share on other sites More sharing options...
geovas77 Απρίλιος 12, 2017 #9 Κοινοποίηση Απρίλιος 12, 2017 Application.ScreenUpdating = False στην αρχή του κώδικα του Macro Application.ScreenUpdating = True στο τέλος του Macro 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now