engant Δημοσ. 21 Ιανουαρίου 2009 Δημοσ. 21 Ιανουαρίου 2009 Καλημέρα έχω την εξής απορία....έστω ότι έχουμε ένα πίνακα με στοιχεία--->τεμάχια, ύψος, βάθος, πλάτος και αριθμητικές τιμές αντίστοιχα---->2, 3, 4, 5 1. πως θα γίνει με συνάρτηση να φαίνεται σε κάποιο κελί ως παράσταση κειμένου τύπου: 2χ3χ4χ5 =?? 2. επίσης αν έχω αναλυτικά ένα ύψος π.χ. 7μ και θέλω να το γράψω 3 και 4 (3+4) ---->2χ (3+4)χ4χ5 =?? 3. Αν τεμάχιο =1 πως θα γίνει να μη φαίνεται στη παράσταση αλλά φυσικά να λαμβάνεται υπόψη στις πράξεις--->3χ4χ5 =?? Παρακαλώ τη βοήθειά σας
parsifal Δημοσ. 21 Ιανουαρίου 2009 Δημοσ. 21 Ιανουαρίου 2009 Σε ποιο πρόγραμμα συγκεκριμένα αναφέρεσαι; Ίσως θα ήθελες να το ξεκαθαρίσεις και στον τίτλο του θέματος.
engant Δημοσ. 21 Ιανουαρίου 2009 Μέλος Δημοσ. 21 Ιανουαρίου 2009 Συγνώμη παράλειψή μου...για το excel....
MastroGiannis Δημοσ. 31 Ιανουαρίου 2009 Δημοσ. 31 Ιανουαρίου 2009 Γεια και χαρά σε όλους! Φίλε engant, αν η περιοχή A1:D1 περιέχει τις τιμές 1,2,3,4 και το κελί Ε1 περιέχει τον τύπο που τις πολλαπλασιάζει, τότε η συνάρτηση =CONCATENATE(A1;"x";B1;"x";C1;"x";D1;"=";E1) επιστρέφει το "1x2x3x4=24" (χωρίς τα εισαγωγικά). Αν είναι αυτό που θέλεις, δεν έχεις παρά να την προσαρμόσεις και για τις υπόλοιπες περιπτώσεις. Ελπίζω να βοηθάει.
engant Δημοσ. 31 Ιανουαρίου 2009 Μέλος Δημοσ. 31 Ιανουαρίου 2009 Θα το δοκιμάσω φίλε και σε ευχαριστώ... -----Προστέθηκε 31/1/2009 στις 07 : 57 : 18----- Το δοκίμασα και δυστυχώς δεν είναι αυτό που ζητάω Έχω πχ πίνακα τιμών μίας γραμμής :1 , 2 , 3 , 4, 5....Το επόμενο κελί με αριθμητική παράσταση θα υπολογίζει το : (1+2)*3-(4/5) = αποτέλεσμα Α Θα ήθελα η παράσταση αυτή που υπολογίζεται ως αποτέλεσμα Α να εμφανίζεται ως κείμενο όπως τη βλέπουμε σε ένα άλλο κελί...
MastroGiannis Δημοσ. 31 Ιανουαρίου 2009 Δημοσ. 31 Ιανουαρίου 2009 Για να καταλάβω φίλε engant, θέλεις να φαίνεται ο τύπος όπως και στη γραμμή τύπων; Δηλαδή με τις αναφορές των κελιών; Π.χ. (A1+B1)*C1-(D1/E1)=F1 Ή με τις τιμές των κελιών; Π.χ. (1+2)*3-(4/5)=8,2 Αν είναι το δεύτερο γίνεται με τον παρακάτω τύπο: >=CONCATENATE("(";A1;"+";B1;")*";C1;"-(";D1;"/";E1;")=";F1) Αλλιώς θα χρειαστείς την παρακάτω προσαρμοσμένη συνάρτηση η οποία προσφέρει και μέγιστη ευελιξία: >Function CellFormulla(rngRef As Range) As String Dim strTemp As String Application.Volatile If rngRef.HasFormula Then strTemp = Right(rngRef.FormulaLocal, Len(rngRef.FormulaLocal) - 1) strTemp = strTemp & "=" & rngRef.Address(0, 0) End If CellFormulla = strTemp End Function Αν χρειαστείς οδηγίες χρήσης της ...φώναξε.
engant Δημοσ. 1 Φεβρουαρίου 2009 Μέλος Δημοσ. 1 Φεβρουαρίου 2009 Καλημέρα και ευχαριστώ για την απάντησή σου πρώτα από όλα... Το πρώτο που λές ναι μεν αντικατοπτρίζει την παράσταση που έχω θέση, είναι σωστή αλλά φαντάσου να θέλω να χρησιμοποιήσω πολλές αριθμητικές παραστάσεις διαφόρου τύπου....Θα πρέπει κάθε φορά να αλλάζω σύμβολα, κελιά κλπ κλπ...Καλύτερα δηλαδή να τη γράφω ως κείμενο παρά έτσι...Να σου πω ότι θα τη χρησιμοποιώ σε επιμετρήσεις έργων...Και έχω πολλές πράξεις... Τώρα όσον αναφορά το δεύτερο , δωσε μου σε παρακαλώ τα φώτα σου...Σε ένα Φύλλο 1, βάζω σε κάποια κελιά αριθμούς, σε ένα κάνω την αριθμητική πράξη και έχω το αποτέλεσμα...Κάνω προβολή κώδικα στο Φύλλο 1 και γράφω το κείμενο που έγραψες...Μετά όμως δε ξέρω τη χρήση του...Πες μου αναλυτικά αν μπορείς σε παρακαλώ τι να κάνω... Ευχαριστώ
MastroGiannis Δημοσ. 2 Φεβρουαρίου 2009 Δημοσ. 2 Φεβρουαρίου 2009 Το ότι θα πρέπει να προσαρμόζεις τον τύπο που σου έδωσα για κάθε ομάδα τύπων που θέλεις να απεικονίσεις, ομολογώ πως είναι το βασικό "κατά" αυτής της λύσης. Η άλλη λύση δεν έχει αυτό το πρόβλημα αλλά δεν ξέρω αν σου δίνει ακριβώς αυτό που ζητάς. Η "CellFormulla" είναι μια προσαρμοσμένη συνάρτηση χρήστη (UDF). Θα πρέπει να εισάγεις τον κώδικά της σε μια στάνταρ λειτουργική μονάδα κώδικα. Στο περιβάλλον της Visual Basic, από το μενού "Insert" πάτα στο "Module". Αφού επικολλήσεις στη νέα module τον κώδικα της CellFormulla μετά θα μπορείς να τη χρησιμοποιήσεις όπως και τις συναρτήσεις του Excel. Θα τη βρείς στην κατηγορία "Συναρτήσεις χρήστη" ή "User Defined". Για παράδειγμα αν στο κελί F1 υπάρχει ο τύπος =(A1+B1)*C1-(D1/E1) τότε η συνάρτηση =CellFormulla(F1) επιστρέφει το (A1+B1)*C1-(D1/E1)=F1. Ελπίζω να βοηθάω...
engant Δημοσ. 2 Φεβρουαρίου 2009 Μέλος Δημοσ. 2 Φεβρουαρίου 2009 Σε ευχαριστώ για ακόμη μία φορά αλλά μάλλον δεν είναι αυτό που ζηταω...Εν μέρει είναι αυτό αλλά εγώ θέλω να βάση συνάρτησης να εμφανίζει την αριθμητική παράσταση με αριθμούς και όχι με τα κελιά...δεν ξέρω αν σ αυτό τον κώδικα μπαίνει κάποια μετατροπή ώστε να έχω τις τιμές των κελιών και όχι τον αριθμό του κελιού(Α1,Α2 κλπ)...Όπως και να έχει με βοήθησες...
MastroGiannis Δημοσ. 2 Φεβρουαρίου 2009 Δημοσ. 2 Φεβρουαρίου 2009 Χμ... Δεν είναι και τόσο εύκολο αυτό που ζητάς... Δες άλλη μία συζήτηση στην οποία ίσως και να βρεις κάτι που να σε βολεύει: http://www.planetexcel.gr/modules/newbb/viewtopic.php?post_id=5885#forumpost5885
engant Δημοσ. 2 Φεβρουαρίου 2009 Μέλος Δημοσ. 2 Φεβρουαρίου 2009 Τον δικό σου τον κώδικα το χρησιμοποίησα όπως μου είπες και μου δινε αποτέλεσμα...Χρησιμοποίησα και τις υπόλοιπες φορμουλες σ αυτό που με παράθεσες αλλά δεν μου βγάζουν καμία και κανένα αποτέλεσμα...Δε ξέρω μήπως τις χρησιμοποιώ λανθασμένα..Βάζω τιμές στα Α1, Β1, C1, D1 ζητώ αριθμητικό αποτέλεσμα στο Ε1 και στο G1 βάση της εκάστοτε function που δοκίμασα την ανάπτυξη ως κείμενο του Ε1...Αλλά δε μου βγάζει τίποτα(#ονομα#)...Βοήθεια ξανά παρακαλώ...Μηπως βγάλω εντέλει κάποια άκρη τελικά...
smerliao Δημοσ. 2 Φεβρουαρίου 2009 Δημοσ. 2 Φεβρουαρίου 2009 Θα το δοκιμάσω φίλε και σε ευχαριστώ... -----Προστέθηκε 31/1/2009 στις 07 : 57 : 18----- Το δοκίμασα και δυστυχώς δεν είναι αυτό που ζητάω Έχω πχ πίνακα τιμών μίας γραμμής :1 , 2 , 3 , 4, 5....Το επόμενο κελί με αριθμητική παράσταση θα υπολογίζει το : (1+2)*3-(4/5) = αποτέλεσμα Α Θα ήθελα η παράσταση αυτή που υπολογίζεται ως αποτέλεσμα Α να εμφανίζεται ως κείμενο όπως τη βλέπουμε σε ένα άλλο κελί... Σε ευχαριστώ για ακόμη μία φορά αλλά μάλλον δεν είναι αυτό που ζηταω...Εν μέρει είναι αυτό αλλά εγώ θέλω να βάση συνάρτησης να εμφανίζει την αριθμητική παράσταση με αριθμούς και όχι με τα κελιά...δεν ξέρω αν σ αυτό τον κώδικα μπαίνει κάποια μετατροπή ώστε να έχω τις τιμές των κελιών και όχι τον αριθμό του κελιού(Α1,Α2 κλπ)...Όπως και να έχει με βοήθησες... για να εμφανίζεται η πράξη αρκεί να πατήσεις CONTROL + ` (αριστερα απο το 1) . τωρα θες να σου εμφανίζει και τα νούμερα και όχι τα κελιά ε? ενδιαφέρον. θα το ψαξω λίγο
MastroGiannis Δημοσ. 3 Φεβρουαρίου 2009 Δημοσ. 3 Φεβρουαρίου 2009 Φίλε engant, ο κώδικας VBA των προσαρμοσμένων συναρτήσεων χρήστη θα πρέπει να επικολληθεί σε μια κανονική λειτουργική μονάδα κώδικα (module) στο περιβάλλον του Visual Basic Editor (VBE), όχι στη λειτουργική μονάδα κώδικα του φύλλου. Στη συνέχεια εμφανίζονται στο παράθυρο του Excel "Εισαγωγή συνάρτησης" και στην κατηγορία "Συναρτήσεις χρήστη". Το σφάλμα #Όνομα? σημαίνει ότι το Excel δεν αναγνωρίζει κάποιο κείμενο που έχεις εισάγει στον τύπο. Ίσως εισάγεις αναφορές κελιών με ελληνικούς χαρακτήρες. Φρόντισε να εισάγεις τους τύπους με πεζούς και λατινικούς χαρακτήρες. Αν είναι σωστά τα όσα εισάγεις, το Excel τα μετατρέπει σε κεφαλαία.
engant Δημοσ. 5 Φεβρουαρίου 2009 Μέλος Δημοσ. 5 Φεβρουαρίου 2009 Φίλε engant, ο κώδικας VBA των προσαρμοσμένων συναρτήσεων χρήστη θα πρέπει να επικολληθεί σε μια κανονική λειτουργική μονάδα κώδικα (module) στο περιβάλλον του Visual Basic Editor (VBE), όχι στη λειτουργική μονάδα κώδικα του φύλλου. Στη συνέχεια εμφανίζονται στο παράθυρο του Excel "Εισαγωγή συνάρτησης" και στην κατηγορία "Συναρτήσεις χρήστη". Το σφάλμα #Όνομα? σημαίνει ότι το Excel δεν αναγνωρίζει κάποιο κείμενο που έχεις εισάγει στον τύπο. Ίσως εισάγεις αναφορές κελιών με ελληνικούς χαρακτήρες. Φρόντισε να εισάγεις τους τύπους με πεζούς και λατινικούς χαρακτήρες. Αν είναι σωστά τα όσα εισάγεις, το Excel τα μετατρέπει σε κεφαλαία. Καλημέρα φίλε... κάνω ένα νέο αρχείο excel...στο φυλλο 1 πατάω δεξί κλίκ και μπαίνω στο module...εκει επικόλλησα το κείμενο... Function gfrv(r As Range) As String 'watch for line wrapping in the next two statements 'there should be two nonblank, noncomment lines 'starting with Const followed by a blank line Const crep As String = "(([A-Za-z0-9_]+|'[^']+')!)?\$?[A-Z]{1,2}\$?[0-9]+" Const mrep As String = "(([A-Za-z0-9_]+:[A-Za-z0-9_]+|'[^']+:[^']+')\!)|(\$?[A-Z]{1,2}\$?[0-9]+:\$ ? [A-Z]{1,2}\$?[0-9]+)" Dim v As Variant, n As Long Dim regex As Object, matches As Object, m As Object Application.Volatile 'modify as needed gfrv = Mid(r.formula, 2) Set regex = CreateObject("vbscript.regexp") regex.Global = True regex.Pattern = mrep Set matches = regex.Execute(gfrv) If matches.Count > 0 Then Exit Function regex.Pattern = crep Set matches = regex.Execute(gfrv) n = matches.Count - 1 For n = n To 0 Step -1 Set m = matches.Item(n) v = Evaluate(m.Value) gfrv = Left(gfrv, m.FirstIndex) & CStr(v) & _ Mid(gfrv, m.FirstIndex + m.Length + 1) Next n End Function στη συνέχεια πήγα πίσω στη λειτουργία του excel, έβαλα τιμές σε κάποια κελιά a1,b1,c1 κλπ...έβαλα ένα μαθηματικό τύπο στο e1 και προσπάθησα στο f1 να βάλω =gfrv(e1) αλλά μου βγάζει #τιμή#(έχει λάθος αυτό το module στο Function gfrv(r As Range) As String και Const mrep As String =)...αυτό συνέβη και παρακάτω δοκιμάζοντας και τα υπόλοιπα module του http://www.planetexcel.gr/modules/newbb/viewtopic.php?viewmode=thread&type=&topic_id=1213&forum=3 αλλά τίποτα....Κάτι θα κάνω λάθος....
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.