tharch Δημοσ. 21 Ιουλίου 2004 Δημοσ. 21 Ιουλίου 2004 Θέλω να φτιάξω έναν πίνακα στο Excel στον οποίο θα υπάρχει μια στήλη όπου θα καταχωρούνται ΑΦΜ (αριθμός φορολογικού μητρώου). Ξέρει κάποιος πώς μπορεί να γίνεται έλεγχος αν το ΑΦΜ που πληκτρολογήθηκε είναι έγκυρο; Υπάρχει συνάρτηση στο Excel που κάνει τέτοιο έλεγχο ή χρειάζεται κάτι άλλο και τι είναι αυτό; Ευχαριστώ Θόδωρος
patrickdrd Δημοσ. 21 Ιουλίου 2004 Δημοσ. 21 Ιουλίου 2004 Σου στέλνω την function που χρησιμοποιώ εγώ σε project της VB. Και στο Excel πρέπει να παίζει λογικά. Της περνάς όρισμα ένα ΑΦΜ και σου επιστρέφει True ή False. > Public Function IsAfm(afm As String) As Boolean Dim afm_dig1 As Byte, afm_dig2 As Byte, afm_dig3 As Byte, _ afm_dig4 As Byte, afm_dig5 As Byte, afm_dig6 As Byte, _ afm_dig7 As Byte, afm_dig8 As Byte, afm_dig9 As Byte Dim v_mod As Byte afm_dig1 = CByte(Mid$(afm, 1, 1)) afm_dig2 = CByte(Mid$(afm, 2, 1)) afm_dig3 = CByte(Mid$(afm, 3, 1)) afm_dig4 = CByte(Mid$(afm, 4, 1)) afm_dig5 = CByte(Mid$(afm, 5, 1)) afm_dig6 = CByte(Mid$(afm, 6, 1)) afm_dig7 = CByte(Mid$(afm, 7, 1)) afm_dig8 = CByte(Mid$(afm, 8, 1)) afm_dig9 = CByte(Mid$(afm, 9, 1)) v_mod = (afm_dig1 * 256 + afm_dig2 * 128 + afm_dig3 * 64 + _ afm_dig4 * 32 + afm_dig5 * 16 + afm_dig6 * 8 + _ afm_dig7 * 4 + afm_dig8 * 2) Mod 11 If v_mod = 10 Then v_mod = 0 End If If v_mod <> afm_dig9 Then IsAfm = False Else IsAfm = True End If End Function
MaTRiX57 Δημοσ. 21 Ιουλίου 2004 Δημοσ. 21 Ιουλίου 2004 kala kai anarotiomoun edw kai merika xronia poios einai o algori8mos pou tsekarei to AFM koita pou hr8e mono tou !
wizard Δημοσ. 22 Ιουλίου 2004 Δημοσ. 22 Ιουλίου 2004 patrickdrd, πως ακριβώς μπορούμε να εισάγουμε μια τέτοια συνάρτηση στο excel? Γιατί εγώ το έκανα αναλυτικά χρησιμοποιώντας κελιά. Thanks
wizard Δημοσ. 22 Ιουλίου 2004 Δημοσ. 22 Ιουλίου 2004 Βρήκα τρόπο μέσω του Visual Basic Editor και Insert Module αλλά αυτό θα πρέπει να το κάνω σε κάθε βιβλίο. (τουλάχιστον έτσι νομίζω) Δεν υπάρχει τρόπος να μείνει μόνιμα στη μνήμη? Θα προτιμούσα κι όλας να μπορούσα να την εγκαταστήσω στην κατηγορία οικονομικές και όχι user defined.
tharch Δημοσ. 23 Ιουλίου 2004 Μέλος Δημοσ. 23 Ιουλίου 2004 Με το Excel τα πράγματα πήγαν μια χαρά. Στο ένα κελί (π.χ. στο Α2) πληκτρολογεί ο χρήστης το ΑΦΜ και σε κάποιο άλλο (π.χ. στο διπλανό) υπάρχει η συνάρτηση που κάνει τον έλεγχο και εμφανίζει το ανάλογο μήνυμα =IF(RIGHT(MOD((MID(A2;1;1)*256+MID(A2;2;1)*128+MID(A2;3;1)*64+MID(A2;4;1)*32+MID(A2;5;1)*16+MID(A2;6;1)*8+MID(A2;7;1)*4+MID(A2;8;1)*2);11);1)=MID(A2;9;1);"swsto";"lathos" Το μεγάλο (...) ερώτημα: στην access πώς μπορούμε να φτιάξουμε έναν κανόνα επικύρωσης για να κάνουμε παρόμοια δουλειά (επικύρωση ΑΦΜ); Ευχαριστώ Θόδωρος
Phillip Morris Δημοσ. 23 Ιουλίου 2004 Δημοσ. 23 Ιουλίου 2004 Ριξε μια ματιά και σε αυτό το topic http://www.insomnia.gr/phpBB2/viewtopic.php?t=387777
tharch Δημοσ. 24 Ιουλίου 2004 Μέλος Δημοσ. 24 Ιουλίου 2004 Phillip Morris, άριστη δουλειά! Σ' ευχαριστώ. Θόδωρος
DarkOrion Δημοσ. 24 Ιουλίου 2004 Δημοσ. 24 Ιουλίου 2004 kai me apla logakia. http://www.maths-n-coffee.com/piforum/viewtopic.php?t=31
Phillip Morris Δημοσ. 24 Ιουλίου 2004 Δημοσ. 24 Ιουλίου 2004 kai me alla apla logakia... http://www.sm.gr/pages/afm.html Phillip
tharch Δημοσ. 25 Ιουλίου 2004 Μέλος Δημοσ. 25 Ιουλίου 2004 Ευχαριστώ όσους ασχολήθηκαν με το θέμα. Το παίδεψα λίγο κι εγώ (για να πω την αλήθεια έβγαλα τα μάτια μου με τις παρενθέσεις) και τελικά βρήκα "συνάρτηση" που να δουλεύει ως κανόνας επικύρωσης ΑΦΜ στην Access. Ο κανόνας επικύρωσης έχει ως εξής: Mid([afm];9;1)=Right((((Mid([afm];1;1)*256)+(Mid([afm];2;1)*128)+(Mid([afm];3;1)*64)+(Mid([afm];4;1)*32)+(Mid([afm];5;1)*16)+(Mid([afm];6;1)*8)+(Mid([afm];7;1)*4)+(Mid([afm];8;1)*2)) Mod 11);1) Or Is Null Το afm είναι το "προγραμματιστικό" όνομα του πλαισίου κειμένου στο οποίο εισάγεται το ΑΦΜ. Η αναφορά στο πλαίσιο κειμένου γίνεται με το όνομά του γραμμένο μέσα σε αγκύλες ([afm]). ΠΡΟΣΟΧΗ: τέτοια "αυτοαναφορά" δεν μπορεί να γίνει σε κατάσταση σχεδιασμού πίνακα, γι' αυτό ΤΟΝ ΚΑΝΟΝΑ ΕΠΙΚΥΡΩΣΗΣ ΤΟΝ ΕΙΣΑΓΟΥΜΕ ΣΤΗ ΦΟΡΜΑ ΚΙ ΟΧΙ ΣΤΟΝ ΠΙΝΑΚΑ. Το Or Is Null στο τέλος του κανόνα δίνει τη δυνατότητα να αφήσουμε το πεδίο του ΑΦΜ κενό. (Ζητώ συγγνώμη απ' όσους τα βρίσκουν πολύ παιδαριώδη όσα γράφω, αλλά μπορεί να τα διαβάσουν και κάποιοι άσχετοι όπως εγώ).
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.