Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Συναρτήσεις] Υπολογισμός ηλικίας απο αριθμό(Α.Μ.Κ.Α.) (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/5284-ypologismos-ilikias-apo-arithmo-m-k.html)

gfevran 25-06-19 13:35

Υπολογισμός ηλικίας απο αριθμό(Α.Μ.Κ.Α.)
 
1 Συνημμένο(α)
Καλησπέρα,
Προσπαθώ να υπολογίσω από αριθμό (Α.Μ.Κ.Α.) ηλικία,
Αυτό που αντιμετωπίζω είναι το εξής, όταν η χρονολογία του Α.Μ.Κ.Α.,
είναι μικρότερη από 1950 ο υπολογισμός βγάζει λάθος αποτέλεσμα, όταν όμως η χρονολογία είναι μεγαλύτερη από 1950 βγαίνει σωστό αποτέλεσμα.
Θα ήθελα τη βοήθεια σας.
Ευχαριστώ.

ChrisGT7 25-06-19 19:47

1 Συνημμένο(α)
Καλησπέρα Γιώργο,

Δοκίμασε αν σε καλύπτουν οι αλλαγές που έκανα στον κώδικα.

Θεωρώ ότι ο ΑΜΚΑ απευθύνεται σε φυσικά πρόσωπα που έχουν γεννηθεί το 19ΧΧ και όχι μετά το 2000.

Spirosgr 26-06-19 08:33

Καλημέρα
Στον αρχικό κώδικα του Γιώργου:
Όσες δοκιμές κι αν έκανα, με ημερομηνίες πριν το 1950, δεν υπάρχει σφάλμα.
Πάντα αποδίδει σωστά* την ηλικία.

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

Τώρα
Το σωστά το έχω με αστερίσκο, διότι αν έχουμε παράδειγμα 100180...αποδίδει 38
Δεν ξέρω αν αυτό είναι επιθυμητό, ή αν πρέπει να αποδίδει 39.
Ανάλογα τι θέλετε ή τι θεωρείτε σωστό, μπορείτε να βάλετε στον υπολογισμό:
Κώδικας:

Label.Caption=(...)  +1
ή και
Κώδικας:

Label3.Caption = Year(Date) - Year(TextBox2.Value)
Στο Click του «Καθαρισμός» και οι δύο κώδικες, αφήνουν το TextBox2 «Γεμάτο»
ενώ θα πρέπει να «Καθαρίσει»

Η εγκυρότητα του ΑΜΚΑ, είναι μια περίπτωση που πρέπει να ελεγχθεί
αν αυτό χρειάζεται τελικά,
αλλά αυτό είναι άλλο και μεγάλο κεφάλαιο...

Το κουμπί «Κλείσιμο», είναι άστοχο ως προς την ονομασία και μπερδεύει τον χρήστη.
Θα μπορούσε να έχει πιο σωστά ,ένα κώδικα πίσω του, που κλείνει απλά την φόρμα:
Κώδικας:

Unload Me
και να υπάρχει άλλο κουμπί με: «Έξοδος Από Την Εφαρμογή»
για πλήρη έξοδο...
Μπορούμε ακόμα να εξαφανίσουμε το κουμπί Χ της φόρμας...

Όμως
Αυτό που υπάρχει πίσω από το υπάρχον κουμπί:
Κώδικας:

Private Sub cmdClose_Click()
    ThisWorkbook.Close SaveChanges:=True
    Application.Quit
End Sub

ίσως κάποιες φορές (όχι πάντα, αλλά υπάρχει)
δημιουργήσει πρόβλημα, κλείνοντας και άλλα ανοιχτά βιβλία
με αποτέλεσμα, να χάσουμε δεδομένα...
Καλύτερα να βάλετε:
Κώδικας:

Private Sub cmdClose_Click()
    Dim i          As Integer
    i = Workbooks.Count
    If i > 1 Then
        ThisWorkbook.Close SaveChanges:=True
    Else
        ThisWorkbook.Close SaveChanges:=True
        Application.Quit
    End If
End Sub


gfevran 26-06-19 10:12

Καλημέρα παιδιά,
Χρίστο σε Ευχαριστώ πολύ με την αλλαγή του κώδικα που έκανες δούλεψε τέλεια.

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

Σας Ευχαριστώ πολύ παιδιά,
Να είστε πάντα καλά!.

Με εκτίμηση
Γιώργος

Spirosgr 26-06-19 10:45

Γιώργο, όπως ανέφερα πριν:
«Όσες δοκιμές κι αν έκανα, με ημερομηνίες πριν το 1950, δεν υπάρχει σφάλμα.»
μπορείς να αναπαράγεις ένα σφάλμα, για να δω τι παρουσιάζει στην αρχική σου φόρμα;

gfevran 26-06-19 11:21

1 Συνημμένο(α)
Γεια σου Σπύρο,
Ανέβασα εικόνα με «Print Screen» πιθανόν να υπάρχει καλύτερος τρόπος που δεν γνωρίζω,
Σε Ευχαριστώ για το ενδιαφέρον σου.

Spirosgr 26-06-19 11:28

Αν βλέπω καλά στην εικόνα σου (δεν φαίνεται καθαρά)
ο αριθμός είναι:
24024901095

Αποδίδει 70 (?!)

gfevran 26-06-19 14:25

Σωστά ο αριθμός είναι «24024901095» και αποδίδει «-29»

Spirosgr 26-06-19 14:27

Δεν ξέρω...
Όπως σου είπα πριν, σε 'μένα αποδίδει 70.


Η ώρα είναι 20:27.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2