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/4594-antigrafi-me-synthikes.html)

ΔΗΜΗΤΡΙΟΣ 01-06-17 16:04

Αντιγραφή με συνθήκες
 
1 Συνημμένο(α)
Θέλω από το φύλλο <OLA> να διαβάζει τα επώνυμα της στήλη Β και να κάνει το εξής:
Να ψάχνει στα φύλλα B1 ,B2 ,B3 ,B4 και όταν βρεί ίδιο επώνυμο με αυτό της στήλης Β του φύλλου <OLA> να πηγαίνει στην στήλη G του φύλλου <OLA> και να γράφει το όνομα του φύλλου που βρέθηκε το επώνυμο αυτό.
Αν πχ ψάχνουμε τον Βλαστό και ο Βλαστός βρεθεί στο φύλλο Β1 τότε στο αντίστοιχο κελί της στήλης G του φύλλου <OLA> να γραφει Β1 κτλ
Εχω κώδικα μέσα έκανα την διόρθωση ( νομίζω ) αλλά αργεί πάρα πολύ να δώσει αποτέλεσμα.

Μέχρι και το τρίτο if τα πάει σχετικά καλά

Υπάρχει τίποτα καλύτερο! με vba;

Ευχαριστώ πολύ !

kapetang 01-06-17 18:46

1 Συνημμένο(α)
Καλησπέρα
Δημήτρη, δες το συνημμένο.

Σημειώνω ότι για την ταυτοποίηση των μαθητών Χρησιμοποιούνται το Επώνυμο, το όνομα και το πατρώνυμο.

ΔΗΜΗΤΡΙΟΣ 01-06-17 21:48

Καλησπέρα
Σε ευχαριστώ πολύ αγαπητέ Γιώργο.

Έχεις δίκιο με την ταυτοποίηση αλλά αυτά τα κάνω δοκιμαστικά για εξάσκηση.
Ο κώδικας που έγραψα τελικά είναι πρωτόγονος σε σχέση με τον έξοχο δικό σου.
Δεν θα μπορούσε να απαντηθεί με το if then κτλ;
Καληνύχτα να είσαι καλά!

ΔΗΜΗΤΡΙΟΣ 03-06-17 10:55

Γίώργο καλημέρα.
Δοκίμασα να το τρέξω με τον δικό μου κώδικα που είναι μέσα στο αρχείο και έγινε το εξής:
Οταν έχω τρείς συνθήκες ο χρόνος που κάνει για να δώσει αποτέλεσμα είναι περίπου 35 sec
Οταν έχω τέσσερεις συνθήκες ο χρόνος που κάνει για να δώσει αποτέλεσμα είναι περίπου 27 λεπτά !!!
Πως θα μπορούσε να διορθωθεί ο κώδικας που έγραψα ώστε να έχω γρηγoρότερη ανταπόκριση;
Θελω πολύ δουλειά για να μάθω αυτά που ξέρεις ( και αν ...) οπότε μένω στα τετριμμένα!

kapetang 03-06-17 13:59

1 Συνημμένο(α)
Καλησπέρα

Δημήτρη, δες και δοκίμασε τον κώδικα στο συνημμένο.

ΔΗΜΗΤΡΙΟΣ 03-06-17 16:40

Πολύ καλό !
Βέβαια κάποια σημεία με δυσκολεύουν.Προσπαθώ να δώσω απάντηση.
Σε ευχαριστώ πολύ !.

kapetang 03-06-17 17:33

Βλέποντας πάλι τον κώδικα, διαπίστωσα ότι στο τρίτο μπλοκ κώδικα IF, μέσα στο βρόχο For J=3 To 48, ξέχασα να διαγράψω το περιττό εξωτερικό IF.


Η ώρα είναι 12:24.

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


Search Engine Optimization by vBSEO 3.3.2