Εμφάνιση ενός μόνο μηνύματος
  #3  
Παλιά 13-06-10, 14:52
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.250
Προεπιλογή

Γεια σας!
Μπορούμε να χρησιμοποιήσουμε την (πολύ παλιά) συνάρτηση GET.WORKBOOK() που μας επιστρέφει τα ονόματα των φύλλων σε πίνακα (Array).

Ορίζουμε λοιπόν ένα νέο όνομα πχ. SheetNames (Στην Excel 2007 - στην καρτέλλα Τύποι > Ορισμός ονόματος), όπου στο πεδίο "Αναφορά σε" περνάμε τη συνάρτηση:

=GET.WORKBOOK(1+0*NOW())

Το +0*NOW() προκαλεί επανυπολογισμό του φύλλου (αναγκαιο αφού οι συναρτήσεις τέτοιου είδους δεν συμπεριλαμβάνονται όπως θα έπρεπε στο σοφό κατά τ άλλα σύστημα υπολογισμού της Excel).

Κατόπιν, σε κάποιο κελί χρησιμοποιούμε τον τύπο:

Κώδικας:
=IFERROR(MID(INDEX(SheetNames;ROWS($1:1));FIND("]";INDEX(SheetNames;ROWS($1:1)))+1;31);"")
και συμπληρώνουμε τη στήλη προς τα κάτω όσο χρειαστεί.

Γενικά, η χρήση της VBA αποτελεί μια πιο προσιτή μέθοδο αφού υποστηρίζεται επίσημα (τώρα και στο εγγύς μέλλον τουλάχιστον) από τη Microsoft και είναι κατά πολύ και πληρέστερη.

Τέλος, προσπάθησε όπως ανέφερε και ο Γιάννης να εισέλθεις στο κεφάλαιο VBA μιας και οι γνώσεις σου στην Excel είναι καλές.


Φιλικά

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών
Απάντηση με παράθεση