Εικονογραφημένη επικύρωση

Έχω εφαρμόσει επικύρωση σε ένα ή περισσότερα κελιά και μόλις επιλέγω μία εγγραφή από τη λίστα η αντίστοιχη εικόνα εμφανίζεται. Στην επόμενη επιλογή από τη λίστα η εικόνα θα αντικατασταθεί από νέα. Όλες οι εικόνες έχουν αποθηκευτεί σε ένα φύλλο το οποίο μπορεί να είναι και κρυφό. Και όλα αυτά χωρίς VBA και μακροεντολές, μόνο λίγα καθορισμένα ονόματα και συναρτήσεις.  Όλα θα ξεκαθαρίσουν με ένα παράδειγμα.

Στο παράδειγμα το οποίο θα περιγράψω, όλες οι εικόνες  θα είναι υποθηκευμένες στο φύλλο2 ενός βιβλίου και θα εμφανίζονται στο φύλλο1 όπου θα εισάγω ένα πτυσσόμενο πλαίσιο (επικύρωση δεδομένων) στο κελί Α1 απ’ όπου θα επιλέγω τα ονόματα των εικόνων και η αντίστοιχη εικόνα  θα εμφανίζεται.

Βήμα 1.  Στο φύλλο2 και στα κελιά Β1, Β2, Β3, Β4 κλπ εισάγω μια – μια  τις εικόνες. Προσαρμόζω το μέγεθος κάθε κελιού ώστε μέσα στο κάθε κελί να βρίσκεται μια ολόκληρη εικόνα, χωρίς να αφήνω μεγάλα περιθώρια γύρω.

Βήμα 2.  Στο φύλλο2 και στα κελιά Α1, Α2, Α3, Α4 κλπ εισάγω ένα περιγραφικό όνομα για την κάθε εικόνα η οποία βρίσκεται στα αντίστοιχα στα κελιά Β1, Β2, Β3, Β4 κλπ. Τα ονόματα να είναι πράγματι περιγραφικά διότι με τα ονόματα αυτά θα καλούνται οι εικόνες . Παράδειγμα, αν στο κελί Β1 υπάρχει μία εικόνα της Μήλου στο κελί Α1 γράφουμε: Μήλος. Αν απαιτούνται δύο ή περισσότερες λέξεις να περιγράφει η εικόνα, τότε οι λέξεις γράφονται χωρίς κενά ή με ενωτικό την κάτω παύλα. Πχ  ΧώραΣφακιών ή Χώρα_Σφακιών. Επειδή τα περιγραφικά αυτά ονόματα των εικόνων θα γίνουν (στο επόμενο βήμα) και ονόματα του βιβλίου ισχύουν όλοι οι περιορισμοί του Excel για τα ονόματα.
Βήμα 3.  (φύλλο2) Ας υποθέσουμε ότι έχω εισάγει 50 εικόνες (κελιά Β1 έως Β50) και τις αντίστοιχες περιγραφές τους (κελιά Α1 έως Α50). Επιλέγω τώρα την περιοχή Α1:Β50 και  Μενού: Εισαγωγή > Όνομα > Δημιουργία και στο πινακάκι  Δημιουργία Ονομάτων τσεκάρω μόνο  Αριστερή στήλη και OK. (Για excel 2007: Τύποι > Καθορισμένα ονόματα, Δημιουργία από Επιλογή)
Βήμα 4.  (φύλλο2) Επιλέγω τώρα την περιοχή Α1:Α50 και ξανά Μενού: Εισαγωγή > Όνομα > Ορισμός , Ονόματα στο βιβλίο εργασία: PhotoName και OK. (Για excel 2007: Τύποι > Καθορισμένα ονόματα, Ορισμός Ονόματος, το εύρος να είναι: βιβλίο εργασίας)
Βήμα 5.  Πηγαίνω τώρα στο φύλλο1. Η εικόνα που θα θέλω να δω, θα επιλέγεται από το κελί Α1 από μία πτυσσόμενη λίστα.
Μενού : Δεδομένα > Επικύρωση > καρτέλα : Ρυθμίσεις , Επιτρεπόμενη Τιμή : Λίστα, και κλικ στο άσπρο πλαίσιο κάτω από τη λέξη: Προέλευση. Πατάω F3 και από τον πίνακα Επικόλλησης Ονόματος που εμφανίζεται επιλέγω και κάνω κλικ στο όνομα  PhotoName και OK και ξανά OK.
Βήμα 6.  Θα εισάγω ένα ακόμα όνομα.
Μενού: Εισαγωγή > Όνομα > Ορισμός , Ονόματα στο βιβλίο εργασία: ShowPhoto, Αναφορά σε = INDIRECT(Φύλλο1!$Α$1).
Τελικά στο βιβλίο θα έχω 52 ονόματα, 50 τα ονόματα των εικόνων και τα:
PhotoName=Φύλλο2!$A$1:$A$50
ShowPhoto=INDIRECT(Φύλλο1!$A$1)
Βήμα 7. Γυρνώ τώρα στο φύλλο2, κλικ σε μία οποιαδήποτε εικόνα, πατάω το πλήκτρο της αντιγραφής, γυρνώ στο φύλλο1, κλικ σε ένα κελί, περίπου εκεί που θέλω να εμφανίζεται η εικόνα , και πατάω το πλήκτρο της επικόλλησης. Προσοχή τώρα, όσο η εικόνα στο φύλλο1 είναι επιλεγμένη (8 μικρά τετράγωνα ή κύκλοι εμφανίζονται γύρω της), κάνω κλικ στη Γραμμή Τύπων  και γράφω = ShowPhoto και πατάω Enter.
Είμαι έτοιμος. Επιλέγω το όνομα μιας εικόνας  από το πτυσσόμενο πλαίσιο του κελιού Α1 και η αντίστοιχη εικόνα εμφανίζεται. (Ίσως χρειαστεί να  υποθηκεύσετε το βιβλίο και να το ανοίξετε ξανά). Τώρα για πιο καλά αισθητικά αποτελέσματα σέρνω την εικόνα στο φύλλο1 στην θέση που δείχνει πιο καλά. Ακόμα γυρίζω στο φύλλο2 και με το πλήκτρο Εναλλαγή Πλέγματος ακυρώνω το πλέγμα, ώστε να μην εμφανίζεται το περίγραμμα του κελιού στην εικόνα όταν την βλέπω στο φύλλο1. Εναλλακτικά μπορώ να ορίσω για όλο το φύλλο2 χρώμα γεμίσματος λευκό.
Το φύλλο2 μπορείτε να το ορίσετε κρυφό ή εντελώς κρυφό.
Δέστε ένα παράδειγμα σε δράση στο excel βιβλίο:  illustrated_validation
Αν εφαρμόσετε την επικύρωση σε περισσότερα από ένα κελιά, τότε στο  βήμα 6, το καθορισμένο όνομα θα είναι ShowPhoto =INDIRECT(ACTIVE.CELL()).
Η συνάρτηση ACTIVE.CELL() είναι μία Macro Functions η οποία έρχεται από το παρελθόν, από το Excel Version 4.0, αλλά σας βεβαιώ, δουλεύει μια χαρά. (δοκιμάστηκε σε excel 2000, 2003, 2007).
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
(11/8/2013):          Ο φίλος του ιστολογίου Stazybο Hοrn έστειλε ένα παρόμοιο θέμα, όπου οι φωτογραφίες αποθηκεύονται σε σχόλια. Θα το βρείτε εδώ. Οι φωτογραφίες εμφανίζονται σε σχόλια με την βοήθεια μιας μακροεντολής.  Αν οι φωτογραφίες σας είναι λίγες μπορείτε να τις εισάγετε και χειριστικά από τα μενού, όπως περιγράφεται στα “Μικρά και ίσως χρήσιμα” – αρ.4.  Όπως όμως προκύπτει από την συζήτηση με τον φίλο Stazybο Hοrn, συζήτηση που ακολουθεί σε αυτή εδώ τη σελίδα, η μέθοδος του είναι κατάλληλη μόνο για excel 97-2003. Στις νεώτερες εκδόσεις , η εισαγωγή εικόνων σε σχόλιο παρουσιάζει ένα σοβαρό πρόβλημα δυσλειτουργίας (bug)    
This entry was posted in excel, Επικύρωση, Συναρτήσεις φύλλου and tagged , , , . Bookmark the permalink.

31 Responses to Εικονογραφημένη επικύρωση

  1. Ο/Η Γιώργος Αναστασόπουλος λέει:

    Σε φύλλο του excel 2007, ενώ τα κάνω όλα σωστά, όταν κάνω κλίκ στην εικόνα δεν ενεργοποιείται με τίποτα η περιοχή τύπων για να γράψω
    Τι μπορεί να φταίει ?
    Ευχαριστώ για τον χρόνο σας.

  2. Ο/Η vioannis λέει:

    Γιώργο!
    Ναι έχεις απόλυτο δίκιο, στο excel 2007, όταν επιλέγεις μια εικόνα, δεν σου επιτρέπει να γράψεις στην γραμμή των τύπων. Δεν το γνώριζα αυτό, με την ερώτησή σου μου δόθηκε η ευκαιρία να το δω. Το δοκίμασα σε διάφορους υπολογιστές. Το παράξενο είναι ότι αν το βιβλίο δημιουργηθεί σε παλαιότερη έκδοση, δουλεύει κανονικά αν ανοιχτεί σε περιβάλλον 2007. Ακόμα και αν αποθηκευτεί σαν 2007 και ανοιχτεί ξανά, εξακολουθεί να δουλεύει. Δεν φαίνεται να είναι μια διαφορετική επιλογή της Microsoft για τις νεώτερες εκδόσεις του excel, γιατί στην έκδοση 2010 δεν συνάντησα κανένα πρόβλημα. Φαίνεται ότι είναι μια δυσλειτουργία της συγκεκριμένης έκδοσης .
    Υπάρχει όμως τρόπος παράκαμψης του προβλήματος:
    Τροποποίηση του 7ου βήματος για το excel 2007.
    Πρώτα θα τοποθετήσω το εργαλείο «Εφέ φωτογραφικής μηχανής» στη γραμμή εργαλείων γρήγορης πρόσβασης.(κλικ στο κουμπί του office > Επιλογές του Excel >Προσαρμογή > Στο πτυσσόμενο πλαίσιο «Επιλογή εντολών» επιλέγω « Όλες οι εντολές»> Βρίσκω το εργαλείο «Εφέ φωτογραφικής μηχανής» και το επιλέγω > Προσθήκη > ΟΚ. Ένα κουμπί με την εικόνα μιας φωτογραφικής μηχανής έχει προστεθεί στη γραμμή εργαλείων γρήγορης πρόσβασης)
    Είμαι στο φύλλο1. Κάνω κλικ στο εργαλείο «Εφέ φωτογραφικής μηχανής» και κατόπιν κλικ σε ενα κελί , εκεί περίπου που θέλω να εμφανίζεται η εικόνα. Δημιουργείται ένα μικρό πλαίσιο που θα υποδέχεται τις εικόνες. Δεν ανησυχώ για το μέγεθός του θα το ρυθμίσω αργότερα. Καθώς το πλαίσιο είναι επιλεγμένο στη γραμμή τύπων βλέπω μια διεύθυνση κελιού ή κελιών. Την σβήνω και στη θέση της γράφω =ShowPhoto . Ρυθμίζω το μέγεθος του πλαισίου στο μέγεθος των εικόνων μου και είμαι έτοιμος.

  3. Ο/Η Γεώργιος Αναστασόπουλος λέει:

    Aγαπητέ Γιάννη,
    Σε ευχαριστώ για την άμεση απάντηση σου. Όλα τώρα λειτουργούν άψογα.Είμαι και εγώ της γενιάς του Ζαγκόρ, Μπλέκ και τον εικονογραφημένων κόμικς, μιας και δεν είχαμε τότε όχι τηλεόραση, αλλά ούτε καν ραδιόφωνο.
    Σε ευχαριστώ πολύ.!!!

  4. Ο/Η vioannis λέει:

    Αγαπητέ Γεώργιε.
    Ευχαριστώ και εγώ που με βοήθησες να εντοπίσω ένα λάθος. Προσπαθώ , τα θέματα που ανεβάζω να είναι συμβατά με όλες τις εκδόσεις του excel. Το συγκεκριμένο θέμα με ξεγέλασε διότι το έγραψα σε 2000, το δοκίμασα σε 2003, 2007 και 2010 και πάλι δούλευε, αλλά όπως εντόπισες εσύ δεν μπορούσε το βήμα 7 να υλοποιηθεί στο 2007. Τελικά, επειδή έψαξα το θέμα γενικότερα, υπάρχει κάποιο πρόβλημα με τα αντικείμενα (objects) στην έκδοση 2007. Ούτε με vba μπορεί να λυθεί το θέμα.

  5. Ο/Η Stazybο Hοrn λέει:

    Τώρα θυμήθηκα -τι θυμήθηκα, το αντιμετώπισα πάλι- ένα bug στη μέθοδο με το φόντο στα σχόλια:

    Αν διαγραφεί ένα κελί που έχει καρφιτσωμένο τέτοιο σχόλιο-εικόνα (μόνο του, ή όλη η γραμμή ή η στήλη του), στο επόμενο άνοιγμα του αρχείου, εμφανίζεται μήνυμα σφάλματος:

    Excel found unreadable content in [όνομα αρχείου]. Do you want to recover the contents of this workbook? If you trust the source of this workbook, click Yes.

    Το recovery αποτυγχάνει με το μήνυμα:

    Removed Part: /xl/drawings/vmlDrawing1.vml part. (Drawing shape)

    κι έχουν χαθεί οριστικά όλα τα σχόλια-εικόνες, που πρέπει να ξαναμπούν.

    Μπορείς να το επιβεβαιώσεις κι εσύ; έχεις καμιά ιδέα τι μπορεί να σκαλώνει;

  6. Ο/Η vioannis λέει:

    Stazybο,
    Φαίνεται πως το bug δεν είναι άσχετο με αυτό που συζητήσαμε πιο πάνω με το Γιώργο και αφορά τον τρόπο που η έκδοση 2007 χειρίζεται τα αντικείμενα. Λοιπόν δημιούργησα ένα βιβλίο στο 2007 με εικονογραφημένα σχόλια. Πράγματι αν σε κάποιο άνοιγμα του βιβλίου, διαγράψεις ένα από τα σχόλια εμφανίζεται ακριβώς ότι περιγράφεις και δυστυχώς όλα τα σχόλια εικονογραφημένα και μη διαγράφονται. Αν το βιβλίο το σώσεις σε μορφή .xls, (μορφή Excel 97-2003), το bug ΔΕΝ ΕΜΦΑΝΙΖΕΤΑΙ!
    Επανέλαβα το πείραμα στις εκδόσεις 2000, 2010. Κανένα πρόβλημα. Αύριο θα το δω και στην 2003. Είναι πάντως πολύ καταστροφική δυσλειτουργία. Χάνεται δουλειά ωρών. Στο κατεστραμμένο αρχείο, φαίνεται ότι οι εικόνες, χάνονται οριστικά. Μία σχετική συζήτηση βρήκα εδώ

  7. Ο/Η Stazybο Hοrn λέει:

    Το πρόβλημα το έχω με xslx/xlsm του 2010. Οπότε μου κάνει εντύπωση που λες «Κανένα πρόβλημα», αναφερόμενος στο 2010. Ή κάτι δεν κατάλαβα καλά.

    Κι εγώ βρήκα παρόμοιο παθόντα εδώ, αλλά δεν είμαι γραμμένος να επικοινωνήσω:
    http://www.mrexcel.com/forum/excel-questions/383700-excel-found-unreadable-content-error.html
    Και φαίνεται να υπάρχει ( ; ) λύση… Μιλάμε έχω διαβάσει ένα ένα όλα τα hotfix, αλλά τζίφος.

    Καταστροφή δεν είναι, γιατι τη μακροεντολή και τα images τα έχεις κρατημένα -ή οφείλεις, τελοσπάντων. Οπότε όποτε βγάζεις ένα record, πας και βγάζεις και το image, αλλάζεις αρίθμηση, δείκτες, και ξανατρέχεις το macro. Ναι, είναι πρόβλημα.

  8. Ο/Η vioannis λέει:

    Καλά κατάλαβες. Για το 2010 όμως, ζήτησα τηλεφωνικά από φίλο να το δει, αύριο το απόγευμα θα το δω ο ίδιος. Αυτή τη στιγμή έχω πρόσβαση σε 2000 και 2007 και είναι όπως περιέγραψα . Ναι, είναι πρόβλημα, όσο προνοητικός και να είσαι. Θα συνεχίσω να ψάχνω για το θέμα, θα τα ξαναπούμε.

  9. Ο/Η vioannis λέει:

    Stazybο
    Ναι, το πρόβλημα παρουσιάζεται και στο 2010. Η παρανόηση έγινε γιατί αν διαγράψεις το τελευταίο χρονικά σχόλιο το οποίο εισήγαγες στο φύλλο, το bug δεν παρουσιάζεται. Αυτό το δοκίμασα και το είδα σε excel2010/ Windows 7 Home και σε excel2007/ XP professional. Κοίταξα, μήπως, αν η διαγραφή του σχολίου ή του ενσωματωμένου Shape γίνει με vba και όχι χειριστικά, ξεπερνιέται το πρόβλημα. Τζίφος!. Σκέφτηκα μήπως αν μετά την διαγραφή και πριν αποθηκευτεί το βιβλίο, μπορούσα να αναδιαρθρώσω την συλλογή Comments, ώστε να “ξεχαστεί” η διαγραφή, αλλά αυτό δεν το κατάφερα. Λέω, μήπως είναι θέμα εσωτερικής αρίθμησης της συλλογής Comments ή Shapes, μια και δέχεται την διαγραφή του τελευταίου στοιχείου.

  10. Ο/Η Stazybο Hοrn λέει:

    Κι εγώ έχω δοκιμάσει όλα αυτά που μπορεί να φανταστεί κανείς, κι άλλα τόσα. Το μόνο που δεν έχω κάνει είναι με κάποιο τρόπο να απευθυνθώ στην εταιρεία, να υποβάλω το bug, όπως ξέρω και κάνω με τον firefox, κι άλλες εφαρμογές ΕΛ/ΛΑΚ. Έχεις τη δυνατότητα τέτοιας επικοινωνίας;

    Αν δεν ήταν προϊόν Μ$, θα έλεγα ότι μου κάνει εντύπωση να μην έχει διορθωθεί ακόμη τέτοιο πρόβλημα.

  11. Ο/Η vioannis λέει:

    Ίσως εδώ:
    http://www.microsoft.com/hellas/cpe/welistenyou.aspx#communities
    (στο email της Microsoft TechNet, (?) δεν είμαι σίγουρος). Παρακαλώ κράτα με ενήμερο.

  12. Ο/Η Stazybο Hοrn λέει:

    Κωλύομαι -βασιζόμουν στο να το έκανες εσύ :)

  13. Ο/Η vioannis λέει:

    Πάσα είναι αυτή; Δεν υπάρχει περίπτωση για απάντηση, αλλά μάλλον θα το κάνω. Αν και απ’ ότι είδα, και έχεις δει και εσύ, οι αναφορές στο δίκτυο είναι πολλές, άρα το πρόβλημα δεν θα τους είναι άγνωστο. Αρνητικά εντυπωσιακό, ότι παραμένει σε συνεχόμενες εκδόσεις.

  14. Ο/Η Stazybο Hοrn λέει:

    Τίποτα το νεότερο, ε;

    Αν δεν υπάρχει δυνατότητα, επανάληψης της διαδικασίας με τα images-comments, η μόνη λύση προς το παρόν είναι, αντί για διαγραφή, να μεταφέρεις τα κελιά /τις γραμμές στο ίδιο φύλλο, έξω από τη βάση /πίνακα (τα κρύβεις κιόλας μετά, αν θες). Ο,τιδήποτε άλλο -διαγραφή, μεταφορά σε άλλο φύλλο, καταστροφή…

  15. Ο/Η vioannis λέει:

    Η άλλη λύση είναι να το αποθηκεύσεις σαν βιβλίο 97-2003 (.xls) και να το διατηρείς στη μορφή αυτή.
    Πάντως μετά τη διαγραφή του εικονογραφημένου σχολίου και την αποθήκευση του βιβλίου, η καταστροφή του είναι ολοσχερής, δεν υπάρχει περίπτωση ανάκτησης. ‘Έκανα τα παρακάτω: Έφτιαξα ένα TEST.xlsx και το αποθήκευσα και το έκλεισα. Πήγα στον φάκελο του TEST και άλλαξα την επέκταση .xlsx σε .zip (αγνόησα την προειδοποίηση). Άνοιξα το zip αρχείο και περιηγήθηκα στα διάφορα αρχεία και υποφακέλους. Μεταξύ αυτών είναι ο φάκελος media που περιέχει όλες τις φωτογραφίες, το αρχείο comments1.xml με τις πληροφορίες για τα σχόλια, και φάκελος drawings. Αν τώρα σε ένα αντίγραφο του αρχικού .xlsx βιβλίου, διαγράψεις ένα σχόλιο, το αποθηκεύσεις και επαναλάβεις την παραπάνω εργασία θα δεις ότι οι παραπάνω 2 φάκελοι και το αρχείο comments1.xml δεν υπάρχουν πια, έχουν διαγράφει!!. Με τη διαδικασία αυτή, προσπαθούσα να βρω ένα τρόπο αποθήκευσης και επαναφοράς κάποιων υποφακέλων ώστε να γίνει αποκατάσταση. Δεν τα κατάφερα. Δούλεψα σε 2007.

  16. Ο/Η Stazybο Hοrn λέει:

    μ΄αρέσει ο τρόπος που σκέφτεσαι, που λέει και το ανέκδοτο… :)

  17. Ο/Η Stazybο Hοrn λέει:

    Κι αφού σε φορμά XLS το πρόβλημα δεν υφίσταται, μια ντρίμπλα είναι να θυμάσαι όταν κάνεις διαγραφές που αγγίζουν drawings, να κάνεις save as σε XLS, να κλείνεις το αρχείο XLS, να το ξανανοίγεις, και να ξανακάνεις save as σε XLSM (M γιατί έχεις μέσα το macro για τα εικονογραφημένα σχόλια). Και βέβαια, τι καλά αυτό να γινόταν μ’ ένα κλικ, λέγοντας και «ναι» στις ερωτήσεις πανωγραψίματος στα υφιστάμενα αρχεία, και στην πιθανή ασυμβατότητα παλιού και νέου φορμά.

    Κάτι τέτοιο, δηλαδή:

    Sub drible()
    '
    ' This Macro will save your current XLSM file as an XLS file and the close it.
    ' It will the re-open the latter --XLS-- file and save it as XlSM replacing the
    ' original.
    ' Use this macro with care to save your XLSM file after you have deleted
    '  drawings in it, without resulting in file corruption.
    '
        FullNameXLS = Replace(ThisWorkbook.FullName, ".xlsm", ".xls")
        If Dir(FullNameXLS) <> "" Then
          Kill FullNameXLS
        End If
        ActiveWorkbook.SaveAs Filename:=FullNameXLS, FileFormat:=xlExcel8
        ThisWorkbook.Close
        Application.Workbooks.Open (FullNameXLS)
        FullNameXLSM = Replace(ThisWorkbook.FullName, ".xls", ".xlsm")
        Kill FullNameXLSM
        ActiveWorkbook.SaveAs Filename:=FullNameXLSM, FileFormat:=xlOpenXMLWorkbookMacroEnabled, ConflictResolution:=xlLocalSessionChanges
    End Sub

    που προφανώς δεν δουλεύει, αφού από το κλείσιμο του ThisWorkbook και μετά, δεν υφίσταται.

    Άρα θέλει να πάει στο PERSONAL.XLSM, κι εκεί να μπορεί να αναφερθεί όχι στο ίδιο το PERSONAL.XLSM, αλλά στο ανοιχτό αρχείο που θάχεις με τα drawings:

    Να το σώσει ως xls -χωρίς ερωτήσεις, να το κλείσει, να το ανοίξει, και να το σώσει ως xlsm -χωρίς ερωτήσεις, και να τ’ αφήσει ανοιχτό, όπως ξεκίνησε…

    Σημ: Το ενδιάμεσο κλείσιμο, που κάνει όλη τη ζημιά στο να μην μπορεί να μπει το macro στο ίδιο το αρχείο είναι -παραδόξως;- απαραίτητο. Δοκίμασα διαδοχικά save as xls και save as xlsm, χωρίς ενδιάμεσο κλείσιμο, και δούλεψε επιλεκτικά: μια φορά ναι, μια όχι.

  18. Ο/Η Stazybο Hοrn λέει:

    PERSONAL.XLSB ήθελα να γράψω.

  19. Ο/Η vioannis λέει:

    Αγαπητέ Stazybο τα «ακροβατικά» που σκέπτεσαι θα τα δω σε λίγες μέρες (έχω προσωρινά μηδέν χρόνο) και θα σου γράψω. Σε ευχαριστώ που είσαι πάντα κοντά.

  20. Ο/Η Stazybο Hοrn λέει:

    Μην αγχώνεσαι. Αν δεν πνιγόμουν κι εγώ, θα τα κοιτούσα κι ο ίδιος. :)

  21. Ο/Η vioannis λέει:

    Φίλε Stazybo, η ιδέα σου είναι πολύ καλή. Δίνει λύση στο πρόβλημα, έμμεση βέβαια, αλλά στέρεα λύση! Μπράβο!
    Με τον παρακάτω κώδικα, γραμμένο στο personal βιβλίο, σε μένα δούλεψε χωρίς κανένα πρόβλημα για βιβλία .xlsx και .xlsm Αν θέλεις μπορείς να αποφύγεις την τελική εντολή kill, (νομίζω ότι οι ρυθμίσεις σε κάποιους υπολογιστές την μπλοκάρουν ή κάνω λάθος;) με μοναδική «αβαρία» να διατηρείς στο δίσκο και το αντίγραφο στην .xls έκδοση. Δούλεψα σε excel 2007. Με την Application.DisplayAlerts = False δεν εμφανίζονται ενδιάμεσα ενοχλητικά μηνύματα. Δοκίμασε την και πες μου

    Sub StazyboTest()
    
    Application.DisplayAlerts = False
    Dim newExcel As String
    Dim oldExcel As String
    Dim extension As String
    newExcel = ActiveWorkbook.FullName
    extension = Split(newExcel, ".")(UBound(Split(newExcel, ".")))
    
    Select Case extension
    Case "xlsx"
    oldExcel = Replace(newExcel, ".xlsx", ".xls")
    Case "xlsm"
    oldExcel = Replace(newExcel, ".xlsm", ".xls")
    End Select
    
    ActiveWorkbook.SaveAs Filename:=oldExcel, FileFormat:=xlExcel8
    
    ActiveWorkbook.Close
    
    Workbooks.Open Filename:=oldExcel
    
    Select Case extension
    Case "xlsx"
    ActiveWorkbook.SaveAs Filename:=newExcel, FileFormat:=xlOpenXMLWorkbook
    Case "xlsm"
    ActiveWorkbook.SaveAs Filename:=newExcel, FileFormat:=xlOpenXMLWorkbookMacroEnabled
    End Select
    
    Workbooks.Open Filename:=newExcel
    ActiveWorkbook.Close
    Workbooks.Open Filename:=newExcel
    Kill oldExcel
    Application.DisplayAlerts = True
    End Sub
    
  22. Ο/Η Stazybο Hοrn λέει:

    Ναι, δουλεύει. Για κάποιο λόγο η kill μου κολλούσε.

  23. Ο/Η Γεωργία λέει:

    Καλησπέρα Γιάννη και συγχαρητήρια για την εξαιρετική δουλειά σου!!
    Σχετικά με την εικονογραφημένη επικύρωση σε περισσότερα κελιά θα ήθελα να σε ρωτήσω αν γίνεται καθώς επιλέγουμε από τις λίστες να διατηρούνται οι αντίστοιχες φωτογραφίες. Για να γίνω πιο σαφής, στο παράδειγμά σου αν απο το Α1 στο Φυλλο 1 επιλέξω Σκοποβολή και εμφανιστεί η αντίστοιχη φωτογραφία πώς θα μπορούσα να επιλέξω πχ απο το F2 (όπου θα έχω ξανά την επικυρωμένη λίστα μου) να επιλέξω τοξοβολία ,να εμφανιστεί η αντίστοιχη φωτογραφία και να διατηρηθεί και η φωτογραφία της σκοποβολής απο το Α1. Αν δημιουργήσω πολλές ShowPhoto κάθε φορά με το αντίστοιχο κελί από τις επικυρωμένες λίστες μου δουλεύει, αλλά επειδή χρειάζομαι πολλές φορές την επικυρωμένη λίστα θα ήθελα να σε ρωτήσω αν υπάρχει κάποιος άλλος τρόπος πριν υπερφορτώσω τη διαχείρηση ονομάτων με ShowPhoto……
    Ευχαριστώ πολύ για το χρόνο σου!!

  24. Ο/Η vioannis λέει:

    Γεωργία, γίνεται με μακροεντολή.
    Όταν επιλέγεις την εικόνα που εμφανίζεται στη γραμμή τύπων βλέπεις =ShowPhoto και αριστερά βλέπεις ένα όνομα της φωτογραφίας, κάτι σαν “εικόνα5” ή κάτι σχετικό. Με επιλεγμένη την εικόνα άλλαξε αυτό το όνομα σε master (ή ότι άλλο θέλεις). Διάγραψε το εικόνα5, γράψε master και πάτα Enter. Τώρα πήγαινε στην vba και στη λειτουργική μονάδα του φύλλου αυτού (και όχι σε module) πέρασε τον παρακάτω κώδικα:

    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim kelia As Range
    Dim keli As Range
    Set kelia = Range("a1:a30")
    Set keli = Intersect(Target, kelia)
    If Not keli Is Nothing Then
    ActiveSheet.Shapes("master").Select
    Selection.Copy
    keli.Item(1, 2).Select
    ActiveSheet.Paste
    With Selection
    .Formula = ""
    .Top = keli(1, 2).Top
    .Left = keli(1, 2).Left
    End With
    End If
    End Sub
    

    Τώρα κάθε φορά που επιλέγεις από την επικύρωση δεδομένων στη στήλη Α, ένα όνομα, η αντίστοιχη εικόνα εμφανίζεται κατά τα γνωστά και ένα αντίγραφό της πάει και κάθετε στο αντίστοιχο κελί της στήλης Β. Πρέπει προηγουμένως να ρυθμίσεις τις διαστάσεις στα κελιά της στήλης Β, για να έχεις καλά αισθητικά αποτελέσματα. Ρύθμισε στον κώδικα τη γραμμή:

    Set kelia = Range("a1:a30")
    

    σε όσο μήκος ακριβώς έχει η επικύρωση σου.
    Δες και το θέμα του ιστολογίου “Οργάνωση των αρχείων του υπολογιστή σας μέσα από το excel”. Αν οι εικόνες σου είναι πολλές και τις έχεις μαζεμένες σε φακέλους ίσως σε εξυπηρετήσει καλλίτερα

  25. Ο/Η Γεωργία λέει:

    Σε ευχαριστώ πολύ Γιάννη για την γρήγορη απάντησή σου!! θα το δω και αν χρειαστώ κάτι θα σε ξανα ενοχλήσω.. :)

  26. Ο/Η Νικολέττα λέει:

    Καλησπέρα κ από μένα…
    Υπάρχει τρόπος να έχω την εικονογραφημένη επικύρωση πολλές φορές στο ίδιο φύλλο αλλά η κάθε επικυρωμένη λίστα να εμφανίζει σε διαφορετικό σημείο την αντίστοιχη φωτογραφία της (εννοώ να δρα ανεξάρτητα κ να μην συνδέονται στο κοινό πλαίσιο που εμφανίζεται η αντίστοιχη φωτογραφία)? Για παράδειγμα, στο illustrated validation να επιλέγω από το Α1 το άθλημα κ στη στήλη Β να εμφανίζεται η αντίστοιχη εικόνα και να επιλέγω απο το D1 (όπου θα έχω πάλι την επικυρωμένη λίστα με τα αθλήματα) ένα άθλημα κ να εμφανίζεται στη στήλη Ε η αντίστοιχη φωτογραφία της συγκεκριμένης επιλογής.
    Ευχαριστώ εκ των προτέρων.

  27. Ο/Η vioannis λέει:

    Νικολέτα, αυτό που ζητάς γίνεται.
    α) Εισάγεις τη δεύτερη επικύρωση στο κελί D1
    β) Επαναλαμβάνεις το βήμα 6 και εισάγεις ένα ακόμα όνομα: ShowPhoto2 = INDIRECT(Φύλλο1!$D$1)
    γ) Επαναλαμβάνεις το βήμα 7 με μία νέα αντιγραφή εικόνας την οποία επικολλάς στη στήλη Ε, και για την εικόνα αυτή στη Γραμμή Τύπων γράφεις = ShowPhoto2.
    Κατέβασε, για να το δεις, το παράδειγμα: double_illustrated_validation.

  28. Ο/Η Νικολέττα λέει:

    Σε ευχαριστώ πολύ για την απάντησή σου!!!
    Μια τελευταία ερώτηση…αν πχ θέλω 50 τετοιες επικυρώσεις..αναγκαστικά θα εισάγω 50 ShowPhoto ή υπάρχει κάποιος άλλος τρόπος?
    και πάλι ευχαριστώ!! Καλό Σαββατοκύριακο!

  29. Ο/Η vioannis λέει:

    Νικολέτα ναι, για αυτό που ζητάς, δηλαδή η επιλογή στην κάθε επικύρωση να έχει την δικιά της εικόνα και να επιδρά πάνω στην εικόνα, αλλάζοντας τη.

  30. Ο/Η Νικολέττα λέει:

    Σε ευχαριστώ πολύ και πάλι!

  31. Ο/Η Νίκος Γαβριλάκης λέει:

    Εξαιρετικό άρθρο!
    Εξαιρετική βοήθεια!
    Εξαιρετική δυναμική!
    Με πήγατε από το «Μικρά και Χρήσιμα» που ΝΟΜΙΖΑ ότι ειχα βρει το Άγιο Δισκοπότηρο για το προτζεκτ μου, εδώ όπου πραγματικά μου το ΑΠΟΚΑΛΥΨΑΤΕ!
    Πολλά πολλά μπράβο και ακόμη περισσότερα ΕΥΧΑΡΙΣΤΩ!

Τα σχόλια είναι απενεργοποιημένα.