![]() |
Αντιστοιχία αριθμού - ονόματος 1 Συνημμένο(α) Έχεις απόλυτο δίκιο δούλεψε μια χαρά!!! Σε ευχαριστώ και πάλι πάρα πολύ. Έχω και ένα άλλο θέμα πάλι με excel. Στη στήλη Α έχω διάφορους αριθμούς (στο συγκεκριμένο παράδειγμα που επισυνάπτω είναι από το 1 έως το 10, θα μπορούσε να είναι από το 1 έως το 50000) και στη στηλη Β έχω τα ονόματα που αντιστοιχούν σε αυτούς του 10 αριθμούς. Μπορούν τα ονόματα αυτά με VBA να συμπληρώνονται αυτόματα και στις υπόλοιπες εγγραφές που είναι συμπληρωμένη η στήλη Α αλλά όχι η Β? |
Καλημέρα σε όλους. Διογένη, θερμή παράκληση είναι να μην συνεχίζεις σε ένα θέμα, άλλο διαφορετικό θέμα, αλλά να ανοίγεις καινούργιο θέμα. Σαν κανόνας στο Excel, είναι ότι μπορείς να το κάνεις χωρίς VBA, τότε κάντο έτσι. Στην περίπτωσή σου, μία απλή INDEX & MATCH, μπορεί να κάνει άνετα την δουλειά σου. Στο Β11 και σύρε όσο θέλεις προς τα κάτω. Κώδικας: =INDEX($B$1:$B$10;MATCH(A11;$A$1:$A$10;0)) |
Λευτέρη καλησπέρα, Έχεις δίκιο δεν το σκέφτηκα καθόλου για το νέο θέμα! Σε ευχαριστώ πολύ για την απάντησή σου. |
1 Συνημμένο(α) Καλησπέρα Μιας και ο Διογένης πιθανόν να ήθελε μια λύση με VBA αλλά και γενικά σαν εναλλακτική κατάσταση, η λύση που σας παρουσιάζω έχει κάποια πλεονεκτήματα σε σχέση με τους τύπους INDEX,MATCH όταν τους χρησιμοποιούμαι με τον κλασσικό τρόπο Δημιουργώντας πίνακες και δίνοντας ονόματα σε κελιά ή περιοχές (*βλέπε name manager) μπορούμε να μετακινήσουμε τους πίνακες μας οπουδήποτε στο φύλλο ή να μεγαλώσουμε το αρχικό πινακάκι των ονομάτων (τα δεδομένα μας) όσο χρειάζεται καθώς και τον πίνακα των αποτελεσμάτων Πατώντας το κουμπί της εντολής καθαρίζονται τα παλιά αποτελέσματα και ενημερώνονται με τα νέα Δείτε το και αξιολογήστε το επιπρόσθετα αν βάλουμε στον κώδικα τις γραμμές Range("setcell").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Application.CutCopyMode = False η περιοχή μας δεν έχει πλέον τύπους αλλά μόνο τα ονόματα σαν τιμές οι γραμμές αυτές πρέπει να μπουν πριν το msgbox |
| Η ώρα είναι 04:26. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.