Visual Basic for Applications (VBA) Ερωτήσεις / Απαντήσεις σε σχέση με τη χρήση της VBA. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| ||||
| ||||
Ευέλικτος υπολογισμός μαθηματικών τύπων
Παιδιά καλημέρα, Θα ήθελα να μοιραστώ μαζί σας την συνάρτηση EvalMath που έφτιαξα ώστε να μπορώ να κάνω εύκολη και ευέλικτη αποτίμηση μαθηματικών τύπων που μπορεί να βρίσκονται μέσα σε κείμενο. Το κείμενο βέβαια παίζει επεξηγηματικό ρόλο και διευκολύνει όσους θέλουν να κατανοήσουν και να ελέγξουν τους υπολογισμούς. Δεν έχει σημασία πως είναι ορισμένο το σύμβολο της υποδιαστολής στις τοπικές ρυθμίσεις. Όπως θα διαπιστώσετε "δουλεύει" και με "." και με "," . Η συνάρτηση αυτή παίρνει σαν όρισμα την διεύθυνση κάποιου κελλιού και μας επιστρέφει το αποτέλεσμα της πράξης που περιέχεται σ' αυτό. Με παίδεψε κάποιο καιρό γιατί δεν βρήκα κάτι έτοιμο και μάλιστα όπως ακριβώς θα το ήθελα γι' αυτό και κάθησα να γράψω δική μου συνάρτηση. Θα χαρώ αν φανεί χρήσιμη.
__________________ Τα μάτια των παιδιών λένε την αλήθεια . Ας φροντίσουμε να τα κάνουμε να λάμπουν από χαρά. Το αξίζουν ! |
#2
|
Καλή προσπάθεια, αλλά με το "3.124,50 χιλιοστά Χ 120,50 χιλιοστά" πως θα υπολογίσουμε το εμβαδόν Εγώ βλέπω δύο προβλήματα 1) τα "χ" των χιλιοστών και 2) το "." μαζί με το "," όταν έχουμε δεκαδικό με διαχωριστικό χιλιάδων !!! Ελπίζω να μην ξέχασες την αυστηρότητα μου |
#3
| ||||
| ||||
Ωραίες οι παρατηρήσεις σου . Την συνάρτηση την έγραψα για χρήση σε προμετρήσεις οικοδομικών έργων . Εκεί οι διαστάσεις είναι σε μέτρα και γενικά δεν χρησιμοποιείται διαχωριστικό χιλιάδων σε οικοδομικά έργα δεδομένου ότι δεν έχω συναντήσει προμετρήσεις ενιαίου κτιρίου με μήκος 1 χιλιόμετρο ... Ο τρόπος που αντιμετωπίζει η συνάρτηση τα "," και "." , δεν της δίνει προς το παρόν την ευκαιρία να τα διαχωρίζει. Αυτό με τα χιλιοστά , επειδή δούλευα με μέτρα , δεν το κούρασα. Σίγουρα θέλει τη διερεύνησή του με βάση το τι χαρακτήρες συναντά "σαρώνοντας" τον τύπο προς υπολογισμό . Σεβαστή η αυστηρότητά σου . Δεν την λησμόνησα . Μόνο με αυστηρή κριτική υπάρχει αυτοκριτική και εξελικτική διαδικασία με σκοπό τη βελτίωση . Θα επανέλθω με βελτιώσεις Ευχαριστώ για το χρόνο που αφιέρωσες και για τις παρατηρήσεις σου.
__________________ Τα μάτια των παιδιών λένε την αλήθεια . Ας φροντίσουμε να τα κάνουμε να λάμπουν από χαρά. Το αξίζουν ! |
#4
|
Γιώργο, έπρεπε να μας το πεις από την αρχή το περί "μετρήσεων οικοδομικών έργων" Τέλος πάντων Εγώ θα το προσέγγιζα με προσδιορισμό των τελεστών των 4 πράξεων και της υποδιαστολής στην κλήση της συνάρτησης Δηλαδή κάτι σαν =evalmath(C4;"+";"-";"*";"/";",") ή =evalmath(C4;" και ";" - ";" χ ";" προς ";".") Τα λέμε Θανάσης |
#5
| ||||
| ||||
Παράθεση:
Λησμόνησα να το διευκρινήσω από την αρχή οπότε τα σχόλιά σου ήταν εύστοχα . Την δεύτερη εκδοχή , Παράθεση:
__________________ Τα μάτια των παιδιών λένε την αλήθεια . Ας φροντίσουμε να τα κάνουμε να λάμπουν από χαρά. Το αξίζουν ! |
#6
| |
Παράθεση:
Τίποτα περισσότερο από το ότι μπορεί να χρησιμοποιηθεί για να υπολογίσει τις προτάσεις όπου έχουμε " και " αντί "+" στην πρόσθεση " - " αντί "-" στην αφαίρεση " χ " στον πολλαπλασιασμό αντί "*" και " προς " για διαίρεση αντί "/" με υποδιαστολή την τελεία "." πχ αν C4=35.20 τ.μ. και 24.30 τ.μ. τότε =evalmath(C4;" και ";" - ";" χ ";" προς ";".") δίνει αποτέλεσμα 59,50 προσοχή στο πως θα ξεχωρίσεις την τελεία υποδιαστολή από την τελεία στο τ.μ. Βούτηξες σε βαθιά νερά νομίζω Τα λέμε Θανάσης |
#7
| |||
| |||
Πως μπορώ να ενεργοποιώ την συνάρτηση σε κάθε αρχείο εργασίας ?
Τελευταία επεξεργασία από το χρήστη Tasos : 16-03-11 στις 18:38. Αιτία: ΚΕΦΑΛΑΙΑ |
#8
| ||||
| ||||
Καλημέρα Κυριάκο, καλωσόρισες στο φόρουμ και σ ευχαριστούμε για τη συμμετοχή σου! Γενικά, μπορείς να χρησιμοποιείς μακροεντολές (κώδικα VBA) στην Excel που τις χρειάζεσαι τακτικά χωρίς να τις γράφεις κάθε φορά σε κάθε βιβλίο εργασίας, αν τις να αποθηκεύσεις στο Βιβλίο Προσωπικών Μακροεντολών. Διαδρομή Personal.xls; Σε περιβάλλον Win 7 :C:\Users\Username\AppData\Roaming\Microsoft\Excel \XLSTART\Personal.xls. Μετά από επιτυχή αποθήκευση, το βιβλίο αυτό θα φορτώνεται ( χωρίς να είναι ορατό) κάθε φορά που ξεκινά η Excel. Για να επιτύχεις την αποθήκευση αυτή άνοιξε ένα νέο βιβλίο, άνοιξε το διάλογο καταγραφής Μακροεντολής ( Εργαλεία > Μακροεντολή > Καταγραφή Μακροεντολής ) και φρόντισε να κάνεις τις ρυθμίσεις όπως φαίνεται στην εικόνα. Προαιρετικά μπορείς να εισάγεις και πλήκτρο συντόμευσης. Πάτησε ΟΚ και φρόντισε να διακόψεις την καταγραφή. Στον VBE έχει ήδη φορτωθεί το Personal.xls, έχει προστεθεί και μια λειτουργική μονάδα που περιέχει τον κώδικα που καταγράφηκε (βλ.Εικόνα) ...όπου μπορείς να αποθηκεύσεις μία η περισσότερες μακροεντολές. Καλή συνέχεια! Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
#9
| |||
| |||
Ευχαριστω πολυ . διαπιστωσα ομως οτι χρησιμοποιωντας την συναρτηση Evalmath και γραφοντας " 3,40 μηκος * 0,30 παχος " δεν δινει αποτελεσμα διοτι αναγνωριζει το "χ" της λεξης "παχος" ως * και επομενως προσπαθει να λυσει την αρθμ παρασταση ως 3,40* * 0,30 και προφανως το διπλο * δεν δινει αποτελεσμα. Υπαρχει τροπος να διορθωθει διοτι πολες λεξεις περιεχουν "χ' ή "Χ" Ακομη σε ενα αρχειο excel που βρηκα στο mhchanikos.gr χρησιμοποιειται η συναρτηση μεσα στην συναρτηση ROUND , βρηκα τροπο να το κανω αυτο αλλα με αντιγραφη της Evalmath μεσα στην ROUND ( Evalmath(C5);2). υπαρχει τροπος αλλος?. Ευχαριστω |
#10
| ||||
| ||||
Κυριάκο, Δεν θα ήθελα να φέρω τεχνική γνώμη αφού το λόγο τον έχει ο Γιώργος που είναι ο δημιουργός της συνάρτησης αυτής Γενικότερα όμως, η συνάρτηση αυτή δεν είναι "All around" λύση. Αυτό σημαίνει ότι λειτουργεί κάτω από συγκεκριμένες συνθήκες και πρέπει να θεωρηθεί ως παράδειγμα προσέγγισης για όσους θέλουν και μπορούν να την προσαρμόσουν στις ανάγκες τους. Τα if, ElseIf, Else, Then, Select Case κτλ. θα πρέπει να είναι τόσο πολλά όσο και οι περιορισμοί που και αναρίθμητες διαφορετικές προτάσεις που θα πρέπει να αντιμετωπιστούν. Αυτό δεν μπορεί να αναλυθεί στα πλαίσια μιας παραδειγματικής συνάρτησης. Αν υπάρχουν κείμενα με σταθερή δόμηση που πρέπει να αναλυθούν τότε η συνάρτηση αυτή με τις κατάλληλες τροποποιήσεις θα κάνει καλά τη δουλειά της. Πάντως τα περιθώρια ανάπτυξης/βελτίωσης της συνάρτησης αυτής είναι πολύ μεγάλα. Δώσε μας κάτι πιο σαφές με ένα παράδειγμα του ζητούμενου σου. Να είσαι σίγουρος ότι θα υπάρξουν αρκετές λύσεις. Φιλικά Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
Εργαλεία Θεμάτων | |
Τρόποι εμφάνισης | |
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
Υπολογισμός φπα | q.mrk | Access - Ερωτήσεις / Απαντήσεις | 1 | 18-03-15 18:10 |
[Γενικά] Αντιμετάθεση Πίνακα με Διατήρηση τύπων | dalavouras | Excel - Ερωτήσεις / Απαντήσεις | 1 | 22-07-13 10:45 |
Μη εμφάνιση αποτελέσματος τύπων σε πίνακες | mdragon | Access - Ερωτήσεις / Απαντήσεις | 20 | 29-05-10 09:54 |
Επί των τύπων των ήλων: like & elself...then συναρτήσεις | PanosPan | Access - Ερωτήσεις / Απαντήσεις | 15 | 17-03-10 06:49 |
Η ώρα είναι 00:12.