Εμφάνιση ενός μόνο μηνύματος
  #10  
Παλιά 31-01-10, 11:35
Το avatar του χρήστη gr8styl
gr8styl Ο χρήστης gr8styl δεν είναι συνδεδεμένος
Super Moderator
Όνομα: Θανάσης Στυλιανίδης
Έκδοση λογισμικού Office: Ms-Office 2003, Ms-Office 2010
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική
 
Εγγραφή: 18-10-2009
Περιοχή: Βρυξέλλες, Βέλγιο
Μηνύματα: 574
Προεπιλογή

Παράθεση:
Αρχική Δημοσίευση από editolis Εμφάνιση μηνυμάτων
Λοιπον παιδια εφτιαξα μια συναρτηση που ισως βοηθησει ...
Καλημέρα σε όλους.

Φίλε Τόλη, χωρίς καμία πρόθεση επίδειξης ή προσβολής, αν μου επιτρέπεις και σε ενδιαφέρει δες τις παρατηρήσεις μου:
  • Δεν κάνεις διάκριση αρσενικών θυληκών, Αν όλα τα ονόματα είναι αρσενικά τότε τα πράγματα είναι αρκετά απλά. (δες τους κανόνες της γραμματικής στο προηγούμενο post).
  • Δεν μας δίνει σωστό αποτέλεσμα για τα επίθετα που τελειώνουν σε -ος και τονίζονται στην παραλήγουσα πχ Βλάχος πρέπει να γίνει "κύριε Βλάχο" και όχι "κύριε Βλάχε"
  • Δείχνει να υπάρχει ένα πρόβλημα όταν γράφουμε τα επίθετα με πεζά και όχι κεφαλαία. Το αποτέλεσμα είναι ένα μείγμα πεζών κεφαλαίων.
Κάνοντας χρήση κώδικα τα πράγματα θα μπορούσαν να είναι πολύ απλούστερα και ακριβή. Το chalenge είναι χρήση ενσωματωμένων συναρτήσεων και όχι κώδικα (τουλάχιστον για μένα).

Ουσιαστικά η συνάρτησή σου αν το ξαναδείς έχει το ίδιο αποτέλεσμα με τις παρακάτω 8 γραμμές κώδικα, που όμως δεν επαρκεί.
Κώδικας:
Function ConvertGreekLastName(varValue As Variant) As Variant
If Right([varValue], 2) = "ΟΣ" Then
    ConvertGreekLastName = Left([varValue], InStrRev([varValue], "") - 2) & "Ε"
ElseIf Right([varValue], 1) = "Σ" Then
    ConvertGreekLastName = Left([varValue], InStrRev([varValue], "") - 1) 
Else
    ConvertGreekLastName = [varValue]
End If
Φιλικά
Θανάσης
ΥΓ. Θα μας μας πάρουν στο κυνήγι οι κυρίες αν τις αφήσουμε απέξω.
Απάντηση με παράθεση