terry Δημοσιεύτηκε Οκτώβριος 24 , 2010 Δημοσιεύτηκε Οκτώβριος 24 , 2010 Πολυ καλο και αυτο....Καλυτερο θα ελεγα... Ευχαριστω...
John_John Δημοσιεύτηκε Οκτώβριος 24 , 2010 Δημοσιεύτηκε Οκτώβριος 24 , 2010 Να 'σαι καλά terry! Χαίρομαι που σ' άρεσε! Όσο για το άλλο ερώτημα που έθεσες, μπορείς να εκμεταλευτείς το συμβάν AcadDocument_ObjectModified όπως φαίνεται στο παρακάτω απλοϊκό παράδειγμα: >Option Explicit Private XLBook As Object Private Sub AcadDocument_Activate() On Error Resume Next Set XLBook = GetObject("C:\Test.xls") Debug.Print "Open " & XLBook.Name End Sub Private Sub AcadDocument_BeginClose() On Error Resume Next Debug.Print "Close " & XLBook.Name XLBook.Close True Set XLBook = Nothing End Sub Private Sub AcadDocument_ObjectModified(ByVal Object As Object) If TypeName(Object) Like "*Polyline" Then XLBook.sheets(1).range("b2:g2") = Object.Coordinates End If End Sub Ελπίζω να σε βοηθάω. 1
Γιάννης Δημοσιεύτηκε Οκτώβριος 25 , 2010 Δημοσιεύτηκε Οκτώβριος 25 , 2010 Ευχαριστώ gvarth! Το κατάλαβα...
st2 Δημοσιεύτηκε Οκτώβριος 25 , 2010 Δημοσιεύτηκε Οκτώβριος 25 , 2010 John_John αυτη η λυση με την μορφοποιηση ειναι φοβερη για το εμβαδο τωρα στο δευτερο θεμα του terry δεν το καταλαβα χρησιμοποιω VBA και το βαζω μεσα?? τι κανω δωσε αν θες μερικες λεπτομερειες ακομα
John_John Δημοσιεύτηκε Οκτώβριος 25 , 2010 Δημοσιεύτηκε Οκτώβριος 25 , 2010 Καλησπέρα st2! Πρώτα απ' όλα, δημιούργησε το αρχείο "C:\Test.xls" και αν θέλεις άνοιξέ το. Σε ένα νέο σχέδιο στο Autocad, πάτα Alt+F11 να ανοίξει το περιβάλλον του VBE και διπλοπάτησε στο αντικείμενο ThisDrawing. Στο παράθυρο κώδικα που θα ανοίξει επικόλλησε τον κώδικα που έδωσα παραπάνω αλλά αντικατέστησε τη διαδικασία "Private Sub AcadDocument_ObjectModified" με την παρακάτω: >Private Sub AcadDocument_ObjectModified(ByVal Object As Object) If TypeName(Object) Like "*Polyline" Then If XLBook Is Nothing Then AcadDocument_Activate If Not XLBook Is Nothing Then XLBook.sheets(1).range("b2:g2") = Object.Coordinates End If End If End Sub Στη συνέχεια σχεδίασε μια polyline και δες τα αποτελέσματα στο "Test.xls". Αν δεν είναι ανοιχτό το "Test.xls", πριν το ανοίξεις κλείσε το σχέδιο από το Autocad διότι είναι ανοιχτό στο παρασκήνιο. Πιθανόν το παράθυρο του "Test.xls" να είναι κρυμμένο όταν το ανοίξεις οπότε επανεμφάνισέ το από το αντίστοιχο μενού (Παράθυρο-->Επανεμφάνιση ή Window-->Unhide) Μην ξεχνάς πως είναι απλά ένα παράδειγμα κώδικα χωρίς ιδιαίτερη μέριμνα για σφάλματα. Ελπίζω να πάνε όλα καλά... Γιάννης 2
erling Δημοσιεύτηκε Οκτώβριος 27 , 2010 Δημοσιεύτηκε Οκτώβριος 27 , 2010 Πάντως όταν απλά θέλω να βάλω 100,00 μ², χρησιμοποιώ την αυτόματη μορφοποίηση και μετά αλλάζω το € σε μ² Αν θέλω να γράφει και μπροστά "Ε=" θα το κάνω όπως λέει ο John_John
Commander Δημοσιεύτηκε Νοέμβριος 2 , 2010 Δημοσιεύτηκε Νοέμβριος 2 , 2010 Γεια σε ολουςαυτο που θα βοηθουσε παρα πολυ θα ηταν μια εντολη που θα εκανε την πραξη ενος κελιου που θα ειχε περιπου αυτη την μορφη 5,50μ (υψος)*3,20μ (πλατος) *2,85μ (μηκος) = δηλαδη μια εντολη που να αναγνωριζει μονο τους αριθμους (με κομμα και οχι με τελεια οπου δουλευει η EvalMath) και τα τα συμβολα των πραξεων και οχι τα γραμματα και στο διπλανο κελι θα εβγαζε 50,16 ΑΠο κόμμα σε τελεία μπορείς να αλλάξεις με VB αλλά καλύτερα κάντο απο το control panel των windows. Όσο για το άλλο που λές φυσικά και γίνεται να αναγνωρίζει μόνο τους αριθμούς, και είναι αρκετά απλό, δεν το έχω μπροστά μου αυτή τη στιγμή να στο γράψω. Εξάλου ο κώδικας που σου δίνω είναι γενικός ώστε να προσθέσεις εσύ ότι θές
gvarth Δημοσιεύτηκε Νοέμβριος 3 , 2010 Συγγραφέας Δημοσιεύτηκε Νοέμβριος 3 , 2010 αυτο που θα βοηθουσε παρα πολυ θα ηταν μια εντολη που θα εκανε την πραξη ενος κελιου που θα ειχε περιπου αυτη την μορφη 5,50μ (υψος)*3,20μ (πλατος) *2,85μ (μηκος) = δηλαδη μια εντολη που να αναγνωριζει μονο τους αριθμους (με κομμα και οχι με τελεια οπου δουλευει η EvalMath) και τα τα συμβολα των πραξεων και οχι τα γραμματα και στο διπλανο κελι θα εβγαζε 50,16 Ωραία η ιδέα σου ! Θα ξεκινήσω κάτι και μετά θα το "ανεβάσω" για σχολιασμό. --- UPDATE --- Δείτε το συνημμένο evalmath.zip , αποσυμπιέστε το και ανοίξτε το στο Excel αποδεχόμενοι την ενεργοποίηση των μακροεντολών. Πλέον υπολογίζονται μαθηματικές εκφράσεις του τύπου : 3.40 μήκος χ 0.30 πλάτος χ 0.60 ύψος . Και δεν χρειάζεται να μπαίνει "=" πριν ή μετά Ούτε μας απασχολεί πλέον η χρήση του '. ή του ',΄σαν σύμβολο δεκαδικών. Η συνάρτηση είναι η evalmath και στο κελλί που θέλουμε το αποτέλεσμα γράφουμε : =evalmath(input cell) Όπου input cell είναι το κελλί όπου έχουμε γράψει την μαθηματική έκφραση που θέλουμε να υπολογίσουμε. Να σημειώσω ότι το κείμενο ΔΕΝ μπορεί να τοποθετείται μέσα σε παρενθέσεις διότι με παρανθέσεις ορίζεται η προτεραιότητα των πράξεων. Αντί των συμβόλων "(" και ")" μπορεί να τοποθετηθούν "{" και "}" ή "[" και "]" Προτάσεις για βελτίωση , ευπρόσδεκτες αν και ο κώδικας είναι ανοικτός στους γνωρίζοντες για επέμβαση. EvalMath.zip 1
basgoud Δημοσιεύτηκε Νοέμβριος 3 , 2010 Δημοσιεύτηκε Νοέμβριος 3 , 2010 Μπράβο gvarth πολλή καλή εύχρηστη ρουτίνα την έψαχνα για καιρό. Επειδή όμως είμαι κολημένος με το ανοιχτό λογισμικό υπάρχει κάποια αντίστοιχη για το OpenOffice Ευχαριστώ, Βασίλης
gvarth Δημοσιεύτηκε Νοέμβριος 3 , 2010 Συγγραφέας Δημοσιεύτηκε Νοέμβριος 3 , 2010 Βασίλη καλησπέρα. Δυστυχώς ΔΕΝ γνωρίζω την γλώσσα μακροπρογραμματισμού που αφορά στο Calc του OpenOffice. Ίσως σε κάποιο forum για το συγκεκριμένο περιβάλλον να βρείς περισσότερες πληροφορίες. Επίσης , ρίξε μια ματιά και εδώ.
Recommended Posts
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε προκειμένου να αφήσετε κάποιο σχόλιο
Πρέπει να είστε μέλος για να μπορέσετε να αφήσετε κάποιο σχόλιο
Δημιουργία λογαριασμού
Κάντε μια δωρεάν εγγραφή στην κοινότητά μας. Είναι εύκολο!
Εγγραφή νέου λογαριασμούΣύνδεση
Εάν έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα