Ευρώ Ολογράφως στην Ελληνική γλώσσα

Τι θα λέγατε για μια VBA συνάρτηση χρήστη με την οποία θα γράφετε αριθμούς ολογράφως; Χρήσιμη; Φαντάζομαι σε πολλούς και για πολλές χρήσεις.
Να, λοιπόν, η συνάρτηση  HellasEuro.
Η συνάρτηση χρήστη HellasEuro δέχεται ως όρισμα έναν αριθμό (ή έναν αριθμό σε μορφή κειμένου τον οποίο μπορεί το excel να αναγνωρίσει σαν αριθμό) και επιστρέφει τον αριθμό ολογράφως στην Ελληνική Γλώσσα σε ευρώ και λεπτά.
π.χ. ο τύπος  =HellasEuro(45,25) αποδίδει: Σαράντα Πέντε Ευρώ και Είκοσι Πέντε Λεπτά.
Αν ο αριθμός έχει περισσότερα από δύο δεκαδικά ψηφία στρογγυλοποιείται στα 2:
HellasEuro(45,2552) = Σαράντα Πέντε Ευρώ και Είκοσι Έξι Λεπτά.
HellasEuro(0,423) = Μηδέν Ευρώ και Σαράντα Δύο Λεπτά.
Η συνάρτηση μπορεί να δεχθεί σαν όρισμα την διεύθυνση ενός κελιού, μία άλλη συνάρτηση κ.λ.π. αρκεί τελικά από αυτά να αποδίδεται αριθμός.
Αν στα κελιά Α1 και Α2 είναι οι αριθμοί 8 και 22 αντίστοιχα τότε HellasEuro(AVERAGE(A1:A2))= Δεκαπέντε Ευρώ και Μηδέν Λεπτά.
H συνάρτηση δέχεται και 2 ακόμα ορίσματα:

Το προαιρετικό όρισμα byType δέχεται τιμές 0 ή 1 ή 2 ή 3.
Αν είναι 0 (μηδέν) τότε, ευρώ και Λεπτά γράφονται ολογράφως ακόμα και αν τα λεπτά είναι μηδέν ή δεν υπάρχουν.
45,65 Σαράντα Πέντε Ευρώ και Εξήντα Πέντε Λεπτά.
45,00 Σαράντα Πέντε Ευρώ και Μηδέν Λεπτά.
Αν είναι 1 τότε τα ευρώ γράφονται ολογράφως και τα Λεπτά γράφονται σαν κλάσμα του 100.
45,65 Σαράντα Πέντε και 65/100 Ευρώ.
45,00 Σαράντα Πέντε και 00/100 Ευρώ.
Αν είναι 2 τότε τα Λεπτά γράφονται αριθμητικά.
45,65 Σαράντα Πέντε Ευρώ και 65 Λεπτά.
45,00 Σαράντα Πέντε Ευρώ και 00 Λεπτά.
Αν είναι 3 τότε τα Λεπτά γράφονται ολογράφως μόνο αν δεν είναι μηδέν.
45,65 Σαράντα Πέντε Ευρώ και Εξήντα Πέντε Λεπτά.
45,00 Σαράντα Πέντε Ευρώ.
Αν δεν δοθεί τιμή για το προαιρετικό όρισμα byType τότε η συνάρτηση το θεωρεί ίσο με 0 (μηδέν).
Το προαιρετικό όρισμα NegativeText είναι το κείμενο ή το σύμβολο που θα εμφανίζεται μπροστά στον αριθμό, αν είναι αρνητικός. Αν δεν δοθεί τότε εμφανίζεται το κείμενο:(Αρνητικό Ποσό).
HellasEuro(-1012211;2) = (Αρνητικό Ποσό) Ένα Εκατομμύριο Δώδεκα Χιλιάδες Διακόσια Έντεκα Ευρώ.
HellasEuro(-101;;»ΧΡΕΟΣ») = ΧΡΕΟΣ Εκατόν Ένα Ευρώ και Μηδέν Λεπτά.
HellasEuro(-101;;»-«) = – Εκατόν Ένα Ευρώ και Μηδέν Λεπτά.
Ποσά απολύτως μεγαλύτερα ή ίσα του ένα δις δεν αποδίδονται.
Για να έχετε έξοδο της Συνάρτησης σε ΚΕΦΑΛΑΙΑ ΓΡΑΜΜΑΤΑ εισάγετε: =UPPER(LOWER(HellasEuro(EuroNumber;byType )))
Παράδειγμα η =UPPER(LOWER(HellasEuro(100102,06))) επιστρέφει:
ΕΚΑΤΟ ΧΙΛΙΑΔΕΣ ΕΚΑΤΟΝ ΔΥΟ ΕΥΡΩ ΚΑΙ ΕΞΙ ΛΕΠΤΑ.
Ειδικά αν στη συνάρτηση δοθεί σαν όρισμα ένα κενό κελί θα επιστρέψει επίσης “κενό” κελί. ‘Έτσι δύνεται η δυνατότητα να σχεδιάζονται φόρμες, τιμολόγια κλπ χωρίς να εμφανίζονται ενοχλητικές τιμές σφάλματος όσο τα κελιά των ποσών είναι ακόμα κενά.
Τον κώδικα θα βρείτε στο word αρχείο: HellasEuroVBACode,
ή αν θέλετε, κατεβάστε ένα excel βιβλίο με τη συνάρτηση HellasEuro, από εδώ ή από εδώ 
This entry was posted in excel, Συναρτήσεις Χρήστη, VBA and tagged , , . Bookmark the permalink.

19 Responses to Ευρώ Ολογράφως στην Ελληνική γλώσσα

  1. Ο/Η Christian Chaya λέει:

    Έχετε καλύψει όλο το φάσμα των ενδεχόμενον ερωτήσεων … δεν μπορώ να προσθέτω τίποτα

  2. Ο/Η azzurro λέει:

    Έκανα copy – paste τον κώδικα από το word, αλλά ότι είναι στα ελληνικά δεν αντιγράφεται. Μετατρέπεται σε «κινέζικα». Υπάρχει κάποια λύση?

  3. Ο/Η vioannis λέει:

    Γυρίστε το πληκτρολόγιό σας στα Ελληνικά και μετά ξεκινήστε τη διαδικασία της αντιγραφής – επικόλλησης.

  4. Ο/Η azzurro λέει:

    Ευχαριστώ πολύ. Δεν το ήξερα αυτό το τρικ. Έκανα την αντιγραφή και η συνάρτηση δουλεύει πολύ καλά.

  5. Ο/Η evris λέει:

    καλησπέρα, υπάρχει περίπτωση να γίνει αυτό στο word με κάποια μακροεντολή???
    γράφω βεβαιώσεις για διαύγεια στο word και πρέπει τα ποσά να είναι αριθμητικά και ολογράφως. αν μπορείτε να μου γράψετε κάτι.

  6. Ο/Η vioannis λέει:

    Κάποια γρήγορη προσαρμογή μπορεί να γίνει για το Word. Θα επανέλθω. (Ίσως αύριο)

  7. Ο/Η vioannis λέει:

    Λοιπόν evris, τον κώδικα της μακροεντολής που ζήτησες θα βρεις στο word αρχείο: olografos_sto_word.
    Γράφεις έναν αριθμό στο word, τον επιλέγεις, τρέχεις την μακροεντολή olografos και ο αριθμός μετατρέπετε σε ολόγραφο.
    Παράδειγμα γράφεις 456,75 επιλέγεις τον αριθμό (με το ποντίκι ή το πληκτρολόγιο), τρέχεις την μακροεντολή και τα αριθμητικά ψηφία μετατρέπονται σε κείμενο: Τετρακόσια Πενήντα Έξι Ευρώ και Εβδομήντα Πέντε Λεπτά.
    Για τα αρνητικά ποσά θα γράψει μπροστά από τον αριθμό: (Αρνητικό Ποσό). Αν θέλεις κάτι διαφορετικό στην 5η σειρά του κώδικα:

    olografo = HellasEuro(arithmos, 0, «(Αρνητικό Ποσό)»)

    άλλαξε το κείμενο (Αρνητικό Ποσό) σε χρέος, πλην, έλλειμμα κλπ ότι σε βολεύει.
    Επίσης, στην ίδια σειρά, άλλαξε το 0 σε 1 ή 2 ή 3 ανάλογα πως θέλεις να διαβάζονται τα δεκαδικά ψηφία του αριθμού (Δες πιο πάνω την περιγραφή της συνάρτησης).
    Αν θα τη χρησιμοποιείς συχνά καλλίτερα να την αντιστοιχίσεις σε κάποιο πλήκτρο.
    Για οποίο πρόβλημα συναντήσεις επανέρχεσαι.

  8. Ο/Η SAMOURKASIDIS APOSTOLOS λέει:

    ΑΝ ΔΕΝ ΘΕΛΟΥΜΕ ΚΑΘΟΛΟΥ ΔΕΚΑΔΙΚΟΥΣ? ΔΗΛ ΠΧ Εκατόν Πενήντα Εξι ευρω ?

  9. Ο/Η vioannis λέει:

    Κάνε χρήση της συνάρτησης TextNumber ( θα τη βρεις στο σημείωμα: “Αριθμοί ολογράφως στο excel”) με τιμή στο προαιρετικό όρισμα DecCount ίση με μηδέν

  10. Ο/Η SAMOURKASIDIS APOSTOLOS λέει:

    Δεν καταφερα να εχω αποτελεσμα με τον τροπο που μου γραψατε αλλα με διαφορετικο
    και αναφερω παρακατω
    χρησιμοποιησα τη συναρτηση textnumber και στην επιλογη intmeasyreplural επελεξα πεδιο αλλου φυλλου εργασιας στο οποι ειχα γραψει ολογραφως τη λεξη »ευρώ»
    ευχαριστω πολυ παντως για την βοηθεια σας
    πολυ καλη δουλεια μπραβο

  11. Ο/Η sthatzi λέει:

    Κύριε Βαρλάμη δεν υπάρχει το αρχείο VbaHellasEuroFunction.xls Μήπως μπορείτε να διορθώσετε το link? Ευχαριστώ.

  12. Ο/Η vioannis λέει:

    Ανανέωσα τον σύνδεσμο. Συνήθως αυτές οι αρνήσεις της wordpress είναι πρόσκαιρες. Αν επανέλθετε αργότερα ο σύνδεσμος θα λειτουργεί. Πέστε μου αν συνεχίζει το πρόβλημα.

  13. Ο/Η Bungeedimis λέει:

    Κύριε Βαρλάμη το πρόβλημα με το link για το αρχείο VbaHellasEuroFunction.xls εξακολουθεί να υφίσταται. Αν μπορείται να το ελέγξετε εκ νέου θα σας ήμουν υπόχρεος. Με εκτίμηση για την πολύ καλή δουλειά σας.

  14. Ο/Η vioannis λέει:

    Δεν καταλαβαίνω γιατί ο σύνδεσμος δυσλειτουργεί. Μερικές φορές, η κατά τα άλλα φιλόξενη wordpress, κάνει του κεφαλιού της. Πρόσθεσα έναν δεύτερο διαφορετικό σύνδεσμο προς ένα αντίγραφο του αρχείου. Παράλληλα έστειλα ένα αντίγραφο του βιβλίου στο email σας

  15. Ο/Η sthatzi λέει:

    Κύριε Βαρλάμη σας ευχαριστώ πολύ για το 2ο link.

  16. Ο/Η Giannis λέει:

    Καλησπέρα.Θα ηθελα τη βοηθεια σας σε μια λεπτομερεια.
    Χρειαζομε σε κεφαλαια,εβαλα απο μπροστα =UPPER(LOWER(HellasEuro,ολα ενταξει μου τα βγαζει με κεφαλαια,αλλα βαζει και τονους.
    Πως μπορω να το κανω να μη βαζει τονους στα κεφαλαια γραμματα

    Ευχαριστω

  17. Ο/Η vioannis λέει:

    Γιάννη, η συνάρτηση φύλλου UPPER όταν δρα πάνω σε πεζά γράμματα τα μετατρέπει σε άτονα κεφαλαία. Αυτός είναι ο κανόνας για το ελληνικό αλφάβητο. Δυστυχώς σε excel 2007 που τρέχει πάνω σε XP, η UPPER τα τονισμένα πεζά τα επιστρέφει τονισμένα (πλην των χαρακτήρων με διαλυτικά). Τουλάχιστον μόνο σε αυτή την έκδοση έχω δει το πρόβλημα. Δες εδώ στο ιστολόγιο μία πιο αναλυτική απάντηση για το θέμα αυτό. Δυστυχώς δεν έχω λύση για το πρόβλημα. Εκτός αν μπεις στον κόπο να αντικαταστήσεις στον κώδικα, σε όλα τα αριθμητικά, όλους τους τονισμένους χαρακτήρες με άτονους. Σε παρακαλώ πες μου σε ποιο excel συνάντησες εσύ το πρόβλημα.

  18. Ο/Η Giannis λέει:

    Καλησπερα (και συγνωμη για την αργοπορεια).Το προβλημα το συναντησα στο excel 2007,σε xp.
    Βρηκα λυση στο προβλημα ,αλλαζοντας -οπως ειδα προτινετε- ολους τους τονισμενους χαρακτηρες σε ατονους.
    5 λεπτα δουλεια,και δουλεψε!

  19. Ο/Η Γιώργος Λιακόπουλοσ λέει:

    Κύριε Βαρλάμη σας ευχαριστώ θερμά που μοιραστήκατε το εκπληκτικό σας κώδικα με εμάς τους υπόλοιπους. Όταν το είδα δεν πίστευα στα μάτια μου.
    Καλή συνέχεια.

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