καλησπερα σε ολους!
δεν εχω ιδεα απο προγραμματισμο και παρολο που προσπαθησα να καταλαβω πως λειτουργει τις τελευταιες 10 μερες δεν μπορω να πω οτι καταφερα και πολλα..
ζηταω τη βοηθεια οσων γνωριζουν....λογω του περιορισμου των 7 υποθεσεων της function if θελω να δημιουργησω μια function που θα ελεγχει την τιμη ενος κελιου και αναλογα με την τιμη που θα περιεχεται σε αυτο θα μου εμφανιζει στο κελι που εφαρμοζεται η function την τιμη ενος αλλου κελιου...δηλαδη εστω οτι εφαρμοζεται η function στο κελι Α1...αν η τιμη ενος κελιου πχ του Β1 ειναι 1 να μου εμφανιζει στο Α1 που εφαρμοζεται η function την τιμη του κελιου j1(οπου j=A στηλη,B στηλη,C στηλη,...),αν η τιμη του Β1 ειναι 2 να μου εμφανιζει στο Α1 που εφαρμοζεται η function την τιμη του κελιου j2,αν η τιμη του Β1 ειναι 3 να μου εμφανιζει στο Α1 που εφαρμοζεται η function την τιμη του κελιου j3 κ.ο.κ. .Δηλαδη αν η τιμη του κελιου Β1 ειναι i να μου εμφανιζει την τιμη του κελιου ji...και να κανει συνολικα 1000 ελεγχους
το μονο που καταφερα να φτιαξω απο αυτα που καταλαβα απο την 10ημερη ενασχοληση μου με το VBA ειναι το παρακατω:
Function superif(check_cell, j As Variant)
For i = 1 To 1000
If check_cell = i Then superif = range("j,i")
Next
End Function
οπου check_cell το κελι του οποιου θα ελεγχεται η τιμη(στο παραδειγμα μας το κελι Β1),j η στηλη απο την οποια θα παιρνει τιμες...
φυσικα το παραπανω δεν δουλευει γιατι δεν μπορω να ορισω το πως θα παιρνει τις τιμες απο το κελι ji που δεν ειναι το μονο λαθος απο οτι φανταζομαι.
ευχαριστω για το χρονο σας...![]()
Εμφάνιση 1-15 από 16
Θέμα: βοηθεια σε vba excel
-
27-03-09, 03:23 βοηθεια σε vba excel #1
-
27-03-09, 04:29 Απάντηση: βοηθεια σε vba excel #2
Δεν χρειάζεται να καταφύγεις στη VBA για αυτό το ζήτημα.
Αντί για μια προσαρμοσμένη SuperIf, μπορείς να χρησιμοποιήσεις
την ενσωματωμένη συνάρτηση INDIRECT ως εξής: =INDIRECT("D"&B1)
Αν για παράδειγμα το Β1 περιέχει την τιμή 5 τότε το αποτέλεσμα που θα μας επιστρέψει
θα είναι η τιμή του κελιού D5. Ελπίζω να το έπιασες το νόημα.
Try it!
Υ.Γ.
Για να σου φύγει όμως και η περιέργεια, ορίστε και η SuperIf:
Κώδικας:Function SuperIf(R As Long, Col As Variant) As Variant SuperIf = Columns(Col).Cells(R).Value End Function
Τελευταία επεξεργασία από το μέλος nisgia : 27-03-09 στις 04:40.
-
27-03-09, 14:48 Απάντηση: βοηθεια σε vba excel #3
φιλε μου επειδη τωρα μαθαινω excel ομολογω πως δεν την γνωριζα την indirect αν και εκανα την σχετικη αναζητηση στο site της microsoft...σε ευχαριστω παρα πολυ!με γλυτωσες απο πολυ χρονο...
........Auto merged post: menteses πρόσθεσε 11 λεπτά και 25 δευτερόλεπτα αργότερα ........
nisgia ευχαριστω σου ειπα?ευχαριστω ξανα και ξανα!πωπω γλυτωσα απιστευτο χρονο...να σαι καλα ρε φιλε και αν ποτε χρειαστεις διατροφικες- διαιτητικες συμβουλες pm me...Τελευταία επεξεργασία από το μέλος menteses : 27-03-09 στις 14:48. Αιτία: auto merged post
-
28-03-09, 03:14 Απάντηση: βοηθεια σε vba excel #4
Φίλε menteses, πραγματικά χαίρομαι πολύ που βοήθησα!
Σου συνιστώ να μάθεις καλά το Excel γιατί είμαι σίγουρος ότι θα σε βοηθήσει πάρα πολύ στη δουλειά σου.
Καλές δουλειές λοιπόν!
Γιάννης
Υ.Γ.
Εδώ που τα λέμε, μια δίαιτα την χρειάζομαι γιατί 110 κιλά σε 1,95m ύψος πέφτουν λίγο βαριά ε;
-
06-05-09, 14:05 Απάντηση: βοηθεια σε vba excel #5
Σας χαιρετώ όλους. Συγχαρητήρια για τη δουλειά σας.
Μπαίνω τακτικά σε αυτό το Forum, αλλά 1η φορά συνδέθηκα σαν μέλος και γράφω, γιατί έχω ένα πρόβλημα αναπάντεχο.
Δεν γνωρίζω Vba, αλλά συνήθως φτιάχνω Μακροεντολές στο Excel.
Έβαλα λοιπόν στο κελί J1 τη Συνάρτηση: =H1&A1&B1&C1&D1&E1&F1&G1 και προσπάθησα να κάνω την εξής Μακροεντολή: Επιλέγω το κελί J1, κάνω αντιγραφή, μετά επιλέγω το κελί K1, κάνω ειδική επικόλληση τα περιεχόμενα. Μετά επιλέγω από τη γραμμή τύπων ότι έχει το κελί K1, κάνω αντιγραφή. Μετά επιλέγω το κελί κελί L1, επιλέγω στη γραμμή τύπων ότι έχει και κάνω επικόλληση και ΕΝΤΕΡ, για να δω το αποτέλεσμα.
Αλλά δεν λειτουργεί.
Κάποια βοήθεια παρακαλώ πολύ.
-
09-05-09, 12:53 Απάντηση: βοηθεια σε vba excel #6
Με επιφύλαξη:
Αν όταν λες "γραμμή τύπων" εννοείς ότι κάνεις αντιγραφή των περιεχομένων της γραμμής που βρίσκεται πάνω από το Φύλο και κάτω από τα κουμπάκια τότε δεν δουλεύει γιατί οι μακροεντολές δεν μπορούν να το παρακολουθήσουν.
Δοκίμασε να κάνεις αντιγραφή το κελί Κ1 και μετά ειδική επικόλληση -> Τύποι (Formulas)Όσο πιο βαθιά βάζουν το χέρι οι εταίροι στις τσέπες μας, τόσο πιο κοντά φθάνουν στα @@ μας
-
10-05-09, 03:14 Απάντηση: βοηθεια σε vba excel #7
Εχω μια απορία για το Excel και δεν βρήκα καλύτερο νήμα για να την καταθέσω:
Όλοι λίγο πολύ θα γνωρίζετε την λειτουργία της "σταθεροποίησης τμημάτων παραθύρου" στο Excel, με το οποίο μπορείς από ένα σημείο και πάνω, να σταθεροποιήσεις τις γραμμές έτσι ώστε να βρίσκονται πάντα στην οθόνη σου, ασχέτως πόσο κάτω πας στο έγγραφο.
Αναρωτιόμουν λοιπόν, αν υπάρχει ανάλογη δυνατότητα και για τις στήλες. Αν δηλαδή μπορώ με μια εντολή/ρύθμιση, να σταθεροποιήσω τις πρώτες στήλες, ώστε όσο δεξιά και αν πηγαίνω, αυτές να μην χάνονται από το οπτικό μου πεδίο. Υπάρχει τρόπος να το κάνω;Ξύπνησα και είχε συννεφιά, και εγώ ερωτήματα πολλά!...
-
10-05-09, 04:26 Απάντηση: βοηθεια σε vba excel #8
Φίλε ofotis, επειδή δεν είναι και τόσο ξεκάθαρο αυτό που θέλεις να κάνεις,
αν θέλεις να αντιγράψεις τον τύπο ενός κελιού σε κάποιο άλλο (πχ από το J1 στο K1)
χρησιμοποιείς την εξής έκφραση:
Range("K1").Formula = Range("J1").Formula
Αν θέλεις να αντιγράψεις την τιμή ενός κελιού σε ένα άλλο χρησιμοποιείς την παρακάτω:
Range("L1").Value = Range("K1").Value
Και αν θέλεις να αντιγράψεις όλα τα περιεχόμενα:
Range("K1").Copy Range("L1")
Ελπίζω να βοηθάω λίγο.
----------------------------------------------------------------------------------------------------
Φίλε Ερωτών, φρόντισε πριν τη σταθεροποίηση το επιλεγμένο κελί να ανήκει
στην αμέσως επόμενη στήλη από την τελευταία στήλη που θέλεις να σταθεροποιήσεις.
Πχ, αν το ενεργό κελί είναι το J6, μετά την σταθεροποίηση η περιοχή Α1:I5 θα είναι σταθερή.
Αυτό δεν εννοούσες;
-
11-05-09, 02:25 Απάντηση: βοηθεια σε vba excel #9
-
11-05-09, 03:36 Απάντηση: βοηθεια σε vba excel #10
Ευχαριστώ πάρα πολύ τον yiapap & τον nisgia για τις απαντήσεις.
Συγνώμη που δεν ήμουν σαφής.
Προσπαθούσα να κάνω μια μακροεντολή η οποία θα έβγαζε το αποτέλεσμα των πράξεων που καταχωρώ κάθε φορά στα κελιά A1 έως και G1.
Τελικά δούλεψε με το: Range("L1").Value = Range("K1").Value
Συνολικά η Μακροεντολή έγινε:
Κώδικας:Sub apotelesma() ' apotelesma Ìàêðîñ ' Ìàêðîñ çàïèñàí 06.05.2009 (UserXP) Range("J1").Select Selection.Copy Range("K1").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False Range("L1").Value = Range("K1").Value Range("A1").Select End Sub
Ζήτησα τη βοήθειά σας, αφού πρώτα προσπάθησα πάρα πολύ μόνος μου.
Για να μην ξαναπεράσω την ίδια ταλαιπωρία, προσπαθώντας να "ανακαλύψω την Αμερική", μπορώ να έχω ξεκλείδωτα μόνο τα κελιά A1 έως και G1, να είναι το φύλλο προστατευμένο και να λειτουργεί η Μακροεντολή;
Ευχαριστώ και πάλι πάρα πολύ για τη λύση, στο πρόβλημα που με ταλαιπωρούσε.
........Auto merged post: ofotis πρόσθεσε 24 λεπτά και 31 δευτερόλεπτα αργότερα ........
Φίλε Ερωτών, όπως έγραψε ο nisgia, η "σταθεροποίηση τμημάτων παραθύρου" σταθεροποιεί και γραμμές και στήλες. Δηλαδή, επιλέγεις ένα κελί και όσες γραμμές βρίσκονται πάνω από το κελί και όσες στήλες βρίσκονται αριστερά από το κελί, σταθεροποιούνται. π.χ. επιλέγοντας το κελί Β2, σταθεροποιείς τη γραμμή 1 και τη στήλη Α.
Ελπίζω να βοήθησα και εγώ.Τελευταία επεξεργασία από το μέλος ofotis : 11-05-09 στις 03:36. Αιτία: auto merged post
-
12-05-09, 23:21 Απάντηση: βοηθεια σε vba excel #11
Ε, λοιπόν, έχετε δίκιο!!! Τελικά ήταν τόσο απλό!
Εξ αρχής είχα μάθει να το κάνω μόνο για γραμμές (επιλέγοντας μια γραμμή, ώστε να σταθεροποιηθούν οι αποπάνω της), και ούτε που μου πέρασε ποτέ από το μυαλό ότι μπορώ να το κάνω με τον ίδιο τρόπο και για στήλες! Και γι' αυτό, ενώ ο nisgia το εξήγησε τόσο ωραία, εγώ επέμενα να βρίσκομαι σταθερός στην αρχική μου εντύπωση!!Καμμιά φορά, το μυαλό κολλάει, παίζοντας μας περίεργα παιχνίδια!...
Ευχαριστώ και τους δυό σας, ofotis και nisgia, για την πολύτιμη βοήθειά σας!
Υ.Γ. Αν παρ' ελπίδα γνωρίζετε την απάντηση και σε ένα άλλο μου ερώτημα, κάντε τον κόπο να περάσετε και από εκεί να μου την δώσετε: "Ανέμη" -ιστοσελίδες για κατέβασμα δωρεάν βιβλίων!Ξύπνησα και είχε συννεφιά, και εγώ ερωτήματα πολλά!...
-
13-05-09, 01:11 Απάντηση: βοηθεια σε vba excel #12
Φίλε ofotis, χαίρομαι που βοήθησα!
Αυτό που ζητάς γίνεται έτσι:
Κώδικας:Sub apotelesma() With ActiveSheet .Unprotect "Password" .Range("K1:L1") = .Range("J1") .Protect "Password" End With End Sub
πριν τρέξεις τη διαδικασία, διαφορετικά διέγραψέ το τελείως από τις εκφράσεις.
Αναρωτιέμαι όμως γιατί δεν χρησιμοποιείς τύπους του Excel.
Πχ: =J1 για τα κελιά Κ1 και L1.
----------------------------------------------------------------------------------------------------
Φίλε Ερωτών, αν και δεν έγινα άμεσα κατανοητός, χαίρομαι που βοήθησα.
-
14-05-09, 02:09 Απάντηση: βοηθεια σε vba excel #13
Να' σαι καλά! Πάντως, σου ξαναλέω, δεν έφταιγες εσύ. Όταν ξαναδιάβασα το ποστ σου, μια χαρά τα έγραφες! Απλώς, είναι αυτό που είπα: καμμιά φορά, το μυαλό του ανθρώπου κολλάει, και άλλα ακούει/διαβάζει, μα άλλα καταλαβαίνει!...
Όποιος ξέρει, ας με βοηθήσει και στο άλλο θέμα μου:
Ξύπνησα και είχε συννεφιά, και εγώ ερωτήματα πολλά!...
-
22-05-09, 12:50 Απάντηση: βοηθεια σε vba excel #14
ΕΥΧΑΡΙΣΤΩ πάρα πολύ nisgia.
1 μέρα μετά σκέφτηκα το κόλπο με το κλείδωμα και ξεκλείδωμα, βάζοντας:
ActiveSheet.Unprotect στην αρχή και
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True ActiveSheet.EnableSelection = xlUnlockedCells στο τέλος
Δεν μπορούσα όμως να βάζω κωδικό και σε ΕΥΧΑΡΙΣΤΩ και πάλι ΠΑΡΑ ΠΟΛΥ.
Αλλά βάζοντας π.χ. στο Κ1 το =J1 μου βγάζει π.χ. =(30+5)*2 και όχι το αποτέλεσμα των πράξεων.
-
22-05-09, 18:31 Απάντηση: βοηθεια σε vba excel #15
Παρόμοια Θέματα
-
Μια βοήθεια σε excel
Από pitpe11 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 2Τελευταίο Μήνυμα: 15-03-09, 22:51 -
ΒΟΗΘΕΙΑ ΣΕ EXCEL
Από apopanos στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 3Τελευταίο Μήνυμα: 17-02-09, 00:24 -
Βοήθεια με excel
Από georgepre10 στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 40Τελευταίο Μήνυμα: 17-04-08, 11:33 -
Βοηθεια στο excel.
Από mplamplampla στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 9Τελευταίο Μήνυμα: 05-03-08, 18:49 -
VBA και EXCEL
Από amy στο φόρουμ Προγραμματισμός και γλώσσες προγραμματισμούΜηνύματα: 20Τελευταίο Μήνυμα: 19-04-07, 11:53
Bookmarks