Καλησπέρα
Δημήτρη δεν παίρνεις 18 αποτέλεσμα επειδή κάποια στιγμή προκαλείται λάθος και ο κώδικας διακόπτεται.
Έχεις δηλώσει τις μεταβλητές a, b, και c ως Integer.
Αυτό σημαίνει ότι η μέγιστη τιμή τους είναι: 32.768
Στη γραμμή κώδικα L=a*b*c επειδή και οι 3 παράγοντες είναι Integer η
VBA θεωρεί και το αποτέλεσμα Integer.
Έτσι όταν το γινόμενο είναι > 32.768 προκαλείται λάθος και ο κώδικας σταματάει.
Μια λύση είναι να γράψεις : L = CLng(a) * b * c, δηλαδή να κάνεις τον ένα παράγοντα τύπου Long.
Καλύτερη και ξεκάθαρη λύση είναι να δηλώνεις όλες τις μεταβλητές a, b, c, L ως Long, ώστε ο τύπος L=a*b*c να μη προκαλεί λάθος.