Περιεχόμενα Ιστολογίου

 

72 Responses to Περιεχόμενα Ιστολογίου

  1. Ο/Η Στέλιος Αντωνάκης λέει:

    Καλησπέρα,
    Έχω μελετήσει κάποιες από τις προτεινόμενες συναρτήσεις και πραγματικά με εντιποσίασαν.
    ¨εχω δύο φύλλα excel .
    Στο πρώτο έχω τα περιεχόμενα και στο δεύτερο διάσπαρτα ονόματα .
    Στο πρώτο φύλλο, θέλω να βάλλω 3 κουμπιά σε κάθε όνομα ώστε να με στέλνουν σε διαφορετική διεύθυνση το κάθε ένα. και επίσης ποιά θα πρέπει να είναι η συνάρτηση ώστε κάθε μετακίνηση των ονομάτων του δευτέρου φύλλου να ενημερώνει το αντίστοιχο κουμπί ώστε να βλέπει τη νέα διεύθυνση.

    Ευχαριστώ

    Στέλιος

  2. Ο/Η vioannis λέει:

    Στέλιο: Κάνε τα κελιά του 2ου φύλλου στα οποία θα παραπέμπουν τα κουμπιά, επώνυμα. Αν παράδειγμα, ένα κουμπί θα παραπέμπει στο κελί G10 του φύλλου2, τότε δώσε στο κελί αυτό το όνομα πχ keli. Το όνομα να έχει εύρος όλο το βιβλίο.
    Τώρα στο κουμπί αντιστοίχισε αυτή την απλή μακροεντολή:

    Application.Goto Reference:="keli"  
    

    Αυτό είναι όλο, και σε εξασφαλίζει από κάθε μετακίνηση του κελιού G10 και από κάθε αλλαγή του ονόματος του φύλλου2.
    Κάνοντας τα κελιά επώνυμα, μπορείς να αποφύγεις τις μακροεντολές και αντί για κουμπιά να χρησιμοποιήσεις υπερσυνδέσεις. Στην καρτέλα “Εισαγωγής υπερσύνδεσης” θα βρεις όλη τη λίστα με τα καθορισμένα ονόματα (αφού, βέβαια, προηγουμένως τα δημιουργήσεις).
    Επίσης, μπορείς να χρησιμοποιήσεις την συνάρτηση φύλλου HYPERLINK. Δες το σημείωμα του ιστολογίου “Η συνάρτηση HYPERLINK”, περιγράφεται ακριβώς η δημιουργία υπερσυνδέσεων με την συνάρτηση, προς μεταβαλλόμενα κελιά.

  3. Ο/Η Stazybο Hοrn λέει:

    Δεν ξέρω πού να βάλω το παρακάτω σχόλιο, επίτρεψέ μου εδώ, ή μετάφερέ το όπου πρέπει:

    Χιλιάδες πρόσθετα κυκλοφορούν για το excel, ένα όμως είναι μένα αναντικατάστατο και απαραίτητο σε κάθε εγκατάσταση του προγράμματος: Η δωρεάν έκδοση του ASAP Utilities for Excel

    Να πω την αλήθεια, απ’ όταν το πρωτοσυνάντησα, την εποχή του Excel 2000, δεν κοίταξα ποτέ για τίποτε άλλο. Κι είναι αυτό που με κρατάει ακόμα στη τριανταδιάμπιτη έκδοση.

    Πιθανόν να υπάρχουν κι άλλα must-have πρόσθετα· ίσως θα μπορούσε να αποτελέσει ένα άρθρο σου το θέμα.

  4. Ο/Η vioannis λέει:

    Ναι, είναι καλή ιδέα, σελίδες για το excel είναι χιλιάδες στο δίκτυο, αλλά θα άξιζε τον κόπο να ξεχωρίσουμε λίγες από αυτές με χρήσιμα εργαλεία.

  5. Ο/Η Στέλιος Αντωνάκης λέει:

    vioannis, stazybo,
    Ευχαριστώ πάρα πολύ,
    Θα τα δώ και θα σας απαντήσω
    Στέλιος

  6. Ο/Η ΔΗΜΗΤΡΗΣ λέει:

    Καλημέρα κύριε Δημήτρη

    θα ήθελα να ρωτήσω το εξής¨εχω δύο στήλες που η καθε μια έχει 3 περιπτώσεις αριθμών π.χ 1,2,3 και θα ήθελα αν υπάρχει τροπος αντι να συγκρίνω μία μια αν είναι ίδιες π.χ if(a1=b1;1;»») να το κάνω στο τέλος συνολικά με μία συνάρτηση???

    ευχαριστώ πολύ

    δημητρης

  7. Ο/Η vioannis λέει:

    Δημήτρη, αν κατάλαβα καλά, θέλεις να συγκρίνεις δύο στήλες πχ Α1:Α100 και Β1:Β100 για να δεις αν είναι ακριβώς ίδιες, κελί προς κελί, με μία μόνο συνάρτηση.
    Λοιπόν, για 2 στήλες , από τις παρακάτω συναρτήσεις:
    Η πρώτη συγκρίνει τις στήλες και επιστρέφει TRUE αν είναι ακριβώς ίδιες. Αν βρει έστω και μία διαφορά στα αντίστοιχα κελιά, θα επιστρέψει FALSE. Η δεύτερη μετρά πόσα ζευγάρια κελιών είναι ίδια (ίσα) και η τρίτη πόσα είναι διαφορετικά.

    =SUMPRODUCT(N(A1:A100=B1:B100))=ROWS(A1:A100)
    =SUMPRODUCT(N(A1:A100=B1:B100))
    =SUMPRODUCT(N(A1:A100<>B1:B100))
    

    Οι τύποι συνυπολογίζουν τα κενά κελιά, αλλά θα αποτύχουν αν στις στήλες Α1:Α100 και Β1:Β100 υπάρχουν σφάλματα ( #ΔΙΑΙΡ/0!, #ΤΙΜΗ!, #ΟΝΟΜΑ?, κλπ)

  8. Ο/Η Stazybο Hοrn λέει:

    <mode value=»…εκεί που δε με σπέρνουν»>Ή, χωρίς την N(), και την SUMPRODUCT(), αλλά με array formula:

     SUM(IF(A1:A100=B1:B100;0;1))

    με Ctrl-Shift-Enter.

    Και με formula

      =A1<>B1 

    σε conditional formatting στην περιοχή A1:A100, και χωριστά το ίδιο στην B1:B100, θα ξεχωρίζουν αμέσως τα διαφoρετικά ζευγάρια.
    </mode>

  9. Ο/Η vioannis λέει:

    Σωστά Stazybο, αλλά μιας και παρακολουθείς το ιστολόγιο, θα έχεις παρατηρήσει την προτίμησή μου στην SUMPRODUCT, που εκτός των άλλων πλεονεκτημάτων της, σε πολλές περιπτώσεις σε απαλλάσσει από την ανάγκη να εισάγεις την συνάρτηση σαν πίνακα.

  10. Ο/Η Χρήστος Κ. λέει:

    Κε Βαρλάμη καλημέρα και Χρόνια Πολλά. Αν έχετε χρόνο μια βοήθεια. Έχω επιλέξει 5 κελιά που έχουν τιμές και είναι σε οριζόντια διάταξη. Τους κάνω μια μορφοποίηση υπο όρους και όλα καλά.Τώρα θέλω να την αντιγραψω αυτή την μορφοποίηση στις επόμενες 380 παρακάτω σειρές και δεν μου αντιγράφονται.Άν πάω μια προς μία δηλ. επιλογή των 5 κελιών κ.λ.π γίνεται μια χαρά .Φυσικά δεν θα ήθελα να το κάνω 300 και φορές….Μήπως υπάρχει κατι πιο εύκολο; Με εκτίμηση Χρήστος Κ

  11. Ο/Η vioannis λέει:

    Ας πούμε ότι τα 5 κελιά είναι τα Α1:Ε1
    1) Επιλέγεις και αντιγράφεις τα 5 αυτά κελιά (ναι, αντιγράφεις)
    2) Επιλέγεις την περιοχή στην οποία θέλεις να μεταφέρεις τη μορφοποίηση, στο παράδειγμα την Α2: Ε380
    3) Κάνεις δεξί κλικ μέσα στην επιλεγμένη περιοχή και από το πτυσσόμενο μενού επιλέγεις: Ειδική επικόλληση, στη συνέχεια επιλέγεις: Μορφές και ΟΚ.
    Η μέθοδος της ειδικής επικόλλησης σου δίνει, όπως θα δεις, τη δυνατότητα να μεταφέρεις ειδικά τμήματα της μορφοποίησης. Παρατήρησε τις δυνατότητες στο πλαίσιο.
    Υπάρχουν και άλλοι τρόποι, πχ Επιλέγεις τα κελιά Α1:Ε1, διπλό αριστερό κλικ στο κουμπί της μορφοποίησης (αυτό με το πινέλο) και έτσι έχεις καρφιτσωμένη τη μορφοποίηση στον βέλος του ποντικιού, για να την μεταφέρεις όσες φορές θέλεις σε όποια ή όποιες περιοχές του φύλλου, άλλου φύλλου ή άλλου βιβλίου. Για να ξεκαρφιτσώσεις τη μορφοποίηση από το βέλος του ποντικιού πάτα ξανά μία φορά κουμπί της μορφοποίησης ή πάτα Esc. Για να μεταφέρεις μορφοποίηση σε ολόκληρη γραμμή, την επιλέγεις από το πλήκτρο επιλογής της, δηλαδή τον αριθμό της αριστερά.

  12. Ο/Η Χρήστος Κ. λέει:

    Να είστε καλά κε Βαρλάμη.Σας ευχαριστώ!!!

  13. Ο/Η Απόστολος Θεολόγου λέει:

    Έχω μια στήλη στο excel με κινητά τηλέφωνα στη μορφή 306973735460. Υπάρχει τρόπος να σβήσω το 30 που βρίσκεται μπροστά από τον αριθμό του κινητού σε όλη τη στήλη με κάποια εντολή και όχι πηγαίνοντας σε κάθε κελί;

  14. Ο/Η vioannis λέει:

    Απόστολε,
    Ένας από τους παρακάτω τύπους θα λύσει το πρόβλημά σου.

    =TRIM(RIGHT(TRIM(A1);10))
    =TRIM(SUBSTITUTE(" "&TRIM(A1);" "&30;""))
    

    Ο πρώτος επιστρέφει τα 10 τελευταία ψηφία του αριθμού, άρα αφήνει τα δύο πρώτα.
    Ο άλλος αντικαθιστά μόνο το αρχικό 30 με κενό. Τα υπόλοιπα πιθανά 30 στην αριθμό δεν τα πειράζει.
    Όταν ολοκληρώσεις, αντικατέστησε τους τύπους με αξίες. (Επιλέγεις όλη τη στήλη με τους τύπους, δεξί κλικ, αντιγραφή, ξανά δεξί κλικ, ειδική επικόλληση, Τιμές και ΟΚ).

  15. Ο/Η vioannis λέει:

    Υπάρχει και τρόπος χωρίς συνάρτηση:
    Επίλεξε τη στήλη με τα τηλέφωνα.
    Φρόντισε η επόμενη στήλη δεξιά να είναι κενή.
    Στο μενού “Δεδομένα” επιλέγεις “Κείμενο σε στήλη”.
    Εμφανίζεται ο “Οδηγός μετατροπής κειμένου σε στήλες”.
    Στο βήμα 1 από 3 επιλέγεις “Σταθερού μήκους” και πατάς “Επόμενο”.
    Στο βήμα 2 κάνε κλικ με το ποντίκι σε έναν αριθμό αμέσως μετά από το 0 του 30 ώστε μία γραμμή να εμφανιστεί και να χωρίσει τα 30-αρια από τους υπόλοιπους αριθμούς. Πάτα “Τέλος”.
    Οι αριθμοί χωρίς το αρχικό 30 θα περάσουν στην κενή στήλη δεξιά.

  16. Ο/Η Stazybο Hοrn λέει:

    Ή, αν είναι αριθμοί, κάνε μια αφαίρεση (με αριθμητική μορφοποίηση 0)
    =A1-3*10^11

  17. Ο/Η Maria Nikou λέει:

    Μπορείτε να μου πείτε πως σε ένα αρχείο – βιβλίο εργασίας excel με αρκετά φύλλα (2010) να μην επιτρέπεται :
    1) η εντολή Αποθήκευση ως (να μην δημιουργείτε αντίγραφο δηλαδή)
    2) η εντολή εκτύπωση (ούτε επιλογής αλλά κια ούτε ολόκληρου του φύλλου ή βιβλίου)

    Προσπάθησα με την μακροεντολή BeforePrint μα κάτι δεν πάει καλά ….
    Σας ευχαριστώ εκ των προτέρων

  18. Ο/Η vioannis λέει:

    Μαρία
    Για το πρώτο:
    Η παρακάτω μακροεντολή, που θα γραφτεί στη λειτουργική μονάδα του βιβλίου, δηλαδή στο ThisWorkbook και όχι σε ένα module :

    Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    If SaveAsUI = True Then Cancel = True
    End Sub
    

    μπλοκάρει την “Αποθήκευση ως” και επιτρέπει την “Αποθήκευση”
    Ένσταση 1η: Αντίγραφο του βιβλίου μπορεί να δημιουργηθεί και εκτός του excel.
    Ένσταση 2η: Ο χρήστης κατά το άνοιγμα του βιβλίου μπορεί να απενεργοποιήσει τις μακροεντολές και τότε η “Αποθήκευση ως” θα είναι διαθέσιμη.

    Για το πιο δύσκολο δεύτερο:
    Η παρακάτω μάκρο γραμμένη και αυτή στο ThisWorkbook

    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    ActiveWindow.Visible = False
    End Sub
    

    επιχειρεί να κρύψει το βιβλίο πριν την εκτύπωση.
    Στη θέση της απόκρυψης μπορεί να επιχειρηθεί κλείσιμο του βιβλίου:

    ActiveWindow.Close
    

    Πιθανά και η δύο αντί να δουλέψουν, να κρεμάσουν το excel σου. Δοκίμασε και τις δύο σε ένα πρόχειρο βιβλίο.
    Μια πιο ήπια τακτική είναι να αποκρύπτεις το φύλλο του οποίου επιχειρείτε εκτύπωση κάθε φορά:

    ActiveSheet.Visible = False
    

    Ή σε μια πιο ήπια ακόμα εκδοχή, όταν ο χρήστης επιχειρήσει εκτύπωση, τον στέλνεις σε ένα νέο άδειο φύλλο, όπου δεν υπάρχει τίποτα για εκτύπωση.

    Private Sub Workbook_BeforePrint(Cancel As Boolean)
    Sheets.Add After:=Sheets(Sheets.Count)
    End Sub
    

    Παρακάμψεις που μπορεί να κάνει ο χρήστης πολλές. Εξαρτώνται από την έκδοση excel με το οποίο ανοίγει το βιβλίο και από άλλα προγράμματα που έχει στον υπολογιστή του, και φυσικά η απενεργοποίηση των μάκρο.

  19. Ο/Η Maria Nikou λέει:

    Ευχαριστώ πολύ. Θα δοκιμάσω και τα 2 να δω.

  20. Ο/Η Ολυμπου Γρηγορης λέει:

    Καλημέρα ευχαριστώ πολύ για την βοήθεια που μου είχατε δώσει πριν 15 μέρες αλλά τώρα έχω πραγματικά κολλήσει, εχω ψαξει όπου μπορούσα έχω ρωτήση γνωστούς αλλά δεν μπορώ να βρώ κάτι ανάλογο, λοιπόν το παραδειγμά μου
    ποσότητα τεμαχια- ποσοστό κέρδους
    120 12%
    5 80%
    45 -4%
    55 25%
    θέλω να βρώ των μέσω όρο σε ποσοστό αλλα να υπολογίζεται κ η ποσότητα απο το κάθε είδος ξεχωριστα δηλαδή ειναι 22% ο μέσος όρος, αν δεν υπολογίσω την ποσότητα ξεχωριστά δεν βγαίνει σωστά ο μέσος όρος γιατί η ποσότητα τον επηρεάζει.
    Ελπίζω να έγινα αντιληπτός αν μπορείτε να βοηθήσετε ευχαριστώ κ παλι

  21. Ο/Η vioannis λέει:

    Γρηγόρη, αν κατάλαβα καλά, αναφέρεσαι στον σταθμισμένο μέσο των κερδών. Εδώ να υποθέσω, ότι τα κέρδη αναφέρονται σαν ποσοστό επί της τιμής αγοράς του κάθε τεμαχίου, τιμή η οποία είναι ίδια για κάθε τεμάχιο. Αν έτσι έχουν τα πράγματα και οι ποσότητες- τεμάχια είναι στη στήλη Α1:Α5 και τα ποσοστά κέρδους στη στήλη Β1:Β5, τον σταθμισμένο μέσο των κερδών θα σου δώσει ο τύπος:

    =SUMPRODUCT(A1:A4;B1:B4)/SUM(A1:A4)
    

    Πάντως, για το παράδειγμα που έστειλες, ο μέσος είναι 13,49% και όχι 22% όπως λες.

  22. Ο/Η Γιώργος λέει:

    Καλημέρα σας Κε Βαρλάμη και συγχαρητήρια για το ιστολόγιο σας, θα μπορούσατε να δώσετε μερικές πληροφορίες ή παραδείγματα για τη χρήση του SOLVER στο excel, τι ακριβως υπολογίζει και πως και σε τι μας βοηθάει η χρήση του

  23. Ο/Η vioannis λέει:

    Γιώργο, με το εργαλείο “επίλυση” (Solver) του excel, μπορείς να λύσεις μία εξίσωση ή ένα σύστημα εξισώσεων ή ανισώσεων. Για την ακρίβεια το excel θα βρει μία, ή και περισσότερες λύσεις της εξίσωσης ή του συστήματος από τις πολλές λύσεις που ενδεχομένως έχει. (Εκτός βέβαια αν δεν έχει πραγματική λύση). Μπορείς, αν θέλεις, να αναζητήσεις λύσεις μόνο ακέραιες ή μόνο δυαδικές. Η “επίλυση” είναι πολύ αποτελεσματική στην λύση προβλημάτων γραμμικού και μη γραμμικού προγραμματισμού, δηλαδή αναζήτηση του μέγιστου ή του ελάχιστου μιας ποσότητας (παράστασης) όπου οι μεταβλητές της ποσότητας πρέπει να επαληθεύουν κάποιες συνθήκες.
    Παράδειγμα, με ένα απλό γραμμικό σύστημα υπάρχει εδώ:
    http://conta.uom.gr/conta/ekpaideysh/Ptyxiaka/HYII/Teaching_material/Excel/Ex/Exable7.html
    Ένα παράδειγμα γραμμικού προγραμματισμού εδώ:
    http://147.102.158.4/itcivil/program/par1SolverEXCEL060202.pdf
    Επίσης στο παρακάτω ιστολόγιο θα βρεις αρκετά, καλογραμμένα παραδείγματα, για excel 2013,(έκδοση όπου ο solver είναι αρκετά βελτιωμένος)
    http://vbasdelis.wordpress.com/?s=solver&submit=%CE%91%CE%BD%CE%B1%CE%B6%CE%AE%CF%84%CE%B7%CF%83%CE%B7
    Ένα απλό παράδειγμα όπου αναζητούμε δυαδική λύση έχω περιγράφει και εγώ εδώ σε μία παλιότερη απάντηση μου.

  24. Ο/Η Leonidas λέει:

    Kalimera ……. ftiaxno ena excell kai diskolebome se 1 thema to opoio logika exei efkoli lisi alla den exo kai poli idea apo to athlima ………………..lipon
    p.x thelo apo to A1 eos to A20 na kratiete statheri 1 keli kai na allazei to filo
    diladi exo onomasei ta fila 1 . 2 . 3 klp. kai thelo A1 = ‘1’!$B$385 kai na kano copy paste kai sto A2 na paei A2= ‘2’!$B$385 ……. ego kano kopy paste kai apla krataei to filo idio …… tha me glitosete apo para poli kopo EYXARISTO

  25. Ο/Η vioannis λέει:

    Λεωνίδα
    Βήμα 1:
    Στο κελί Α1 γράψε τον τύπο:

    		
    ="="&ROW()&"!$B$385"
    

    Βήμα 2:
    Αντίγραψε (σύρε) τον τύπο έως τη γραμμή που θέλεις. Ο αριθμός τώρα πρέπει να αλλάζει, αλλά δεν είναι διευθύνσεις ακόμα.
    Βήμα 3:
    Αντικατάστησε όλη τη στήλη με αξίες : Επίλεξε τη στήλη, δεξί κλικ, Αντιγραφή, ξανά δεξί κλικ, Ειδική επικόλληση, Τιμές και ΟΚ
    Βήμα 4:
    Επιλέγεις πάλι τη στήλη και μενού Δεδομένα, Κείμενο σε στήλες, στην πρώτη καρτέλα επιλέγεις Σταθερού μήκους και πατάς Επόμενο, στη δεύτερη καρτέλα πατάς μόνο Επόμενο, στην τρίτη καρτέλα επιλέγεις Γενική και Τέλος.
    Τώρα έγιναν διευθύνσεις. Στη γραμμή των τύπων βλέπεις

    	
    ='1'!$B$385
    

    κλπ
    Ωραίο θέμα, γίνεται πιο ωραίο χωρίς τα γκρίκλις

  26. Ο/Η Γιώργος λέει:

    Σας ευχαριστώ πάρα πολύ για τις χρήσιμες πληροφορίες για το Solver!

  27. Ο/Η Isidoros Kompotheklas λέει:

    ΠΑΡΑΚΑΛΩ ΕΑΝ ΕΙΝΑΙ ΕΦΙΚΤΟ ΑΝΑΖΗΤΩ ΕΝΑ ΠΡΟΓΡΑΜΜΑ ΣΕ EXCEL, ΠΟΥ ΝΑ ΕΚΔΙΔΕΙ ΜΗΝΙΑΙΕΣ 24/ΩΡΕΣ ΒΑΡΔΙΕΣ (ΚΥΛΙΟΜΕΝΕΣ 5 ή 6 ΑΤΟΜΩΝ). ΚΑΘΗΜΕΡΙΝΕΣ-ΗΜΙΑΡΓΙΕΣ(ΠΑΡΑΣΚΕΥΗ) – ΑΡΓΙΕΣ(ΣΑΒΒΑΤΟ/ΚΥΡΙΑΚΗ) και ΕΞΑΙΡΕΣΙΜΕΣ (ΧΡΙΣΤΟΥΓΕΝΝΑ/ΠΑΣΧΑ κ.λ.π).
    ΜΕ ΕΚΤΙΜΗΣΗ
    ΙΣΙΔΩΡΟΣ

  28. Ο/Η Leonidas λέει:

    Se eyxaristo para para poli me esoses. oso gia ta greeklish zito signomi alla to pc mou otan bazo Ellinika mou ta vgazei kinezika

  29. Ο/Η Δημητρης Χ λέει:

    Για σας , ηθελα να ρωτησω το παρακατω αν μπορειτε να με βοηθησετε.
    Εχω φτιαξει καποιες στηλες με αριθμητικα δεδομενα και την τελευταια στηλη την ονομαζω «Κατάσταση» με δυο δεδομένα «Εκκρεμεί» ή «Εξοφλήθηκε» . Μονιμως βαση των αυτοματων φίτρων εμφανίζω μόνο τα «Εκκρεμεί» και στην τελευταία γραμμή βγάζω σύνολα με την subtotal(9; . Θέλω σε κάποιο αλλο κελί να βγάζω το subtotal απο τα «Εκκρεμεί» χωρίς να επιλέγω στην στηλη κατασταση το «Εξοφλήθηκε» . ΝΑ ΦΤΙΑΞΩ ΔΗΛΑΔΗ ΜΙΑ ΜΑΚΡΟΕΝΤΟΛΗ ΠΟΥ ΘΑ ΔΙΑΒΑΖΕΙ ΤΟ ΣΥΝΟΛΟ ΑΠΟ ΤΑ «Εξοφλήθηκε» χωρίς ομως οτικά να το κανει στα φανερά.
    Διορθωνω:
    Θέλω σε κάποιο αλλο κελί να βγάζω το subtotal απο τα «Εξοφλήθηκε» χωρίς να επιλέγω στην στηλη κατασταση το «Εξοφλήθηκε» . ΝΑ ΦΤΙΑΞΩ ΔΗΛΑΔΗ ΜΙΑ ΜΑΚΡΟΕΝΤΟΛΗ ΠΟΥ ΘΑ ΔΙΑΒΑΖΕΙ ΤΟ ΣΥΝΟΛΟ ΑΠΟ ΤΑ «Εξοφλήθηκε» χωρίς ομως οπτικά να το κανει στα φανερά.

  30. Ο/Η vioannis λέει:

    Δημήτρη
    Ότι δίνει ο τύπος

    =SUBTOTAL(9;A1:A100)
    

    όταν φιλτράρεις ως προς «Εξοφλήθηκε» δίνει και ο τύπος:

    =SUMIF(K1:K100;"Εξοφλήθηκε";A1:A100)
    

    χωρίς να φιλτράρεις, όπου Κ είναι η στήλη με τις εγγραφές «Εκκρεμεί» και «Εξοφλήθηκε».
    Όμοια ο τύπος:

    =SUMIF(K1:K100;"Εκκρεμεί";A1:A100)
    

    δίνει το άθροισμα των εγγραφών «Εκκρεμεί» χωρίς φίλτρο.

  31. Θα ήθελα να βρω έναν αυτοματοποιημένο τρόπο να φτιάχνω πίνακα κατανομής συχνότητας από δύο διαφορετικές στήλες. Δηλαδή,έστω ότι έχω μια στήλη καταναλωτών σε τρεις κατηγορίες (πχ 25-45, 46-55, >56) και μια άλλη στήλη με κατηγορίες εισοδήματος (πχ 800-1000, 1000-1500, >1500). Θέλω να φτιάξω έναν πίνακα 3χ3 με την αριστερή κολώνα να έχει τις κατηγορίες εισοδημάτων και τρεις σειρές με τις κατηγορίες ηλικιών, έτσι ώστε να φαίνεται για παράδειγμα πόσοι είναι στην κατηγορία 20-45 και ταυτόχρονα έχουν εισόδημα 1000-1500. Και όλα αυτά από μια μεγάλη λίστα από ονόματα με στοιχεία τους. Ευχαριστώ, εκ των προτέρων.

  32. Ο/Η Stazybο Hοrn λέει:

    Αυτό που θες είναι ομαδοποίηση σε συγκεντρωτικό πίνακα. Δες, π.χ., εδώ https://exceljet.net/node/965

  33. Ο/Η Θέκλα λέει:

    Γιάννη,
    οποίος και να είσαι, θα ήθελα να με βοηθήσεις σε κάτι.

    Λιστα1 Λιστα 2
    ICY HEART WP2
    LYNCEUS WP9
    CREDNET WP1
    DAIRIUS WP1
    ICY HEART WP1
    ICY HEART WP1
    LYNCEUS WP8

    Θα ήθελα να μάθω αυτόματα το κάθε σύνολο της ΜΙΑΣ Δέσμης Εργασίας (Λιστα 2) μόνο αν ταιριάζει σε ένα έργο (Λιστα 1) πάνω στο οποίο δουλεύω.
    Ας πούμε, το πιο σωστό και λογικό θα πρέπει να είναι έτσι,
    Για το έργο ICY HEART, βλέπω 1 WP2 και 2 WP1.
    ICY HEART
    Σύνολα Δεσμών
    WP1 2
    WP2 1
    WP3 0
    WP4 0
    …..
    Το πρόβλημα είναι ότι εδώ μου δείχνει ότι έχω 4 το WP1, όμως είναι λάθος, διότι βλέπω 3 διαφορετικά έργα.

    Θα εκτιμούσα πολύ αν με βοηθήσεις!
    Ευχαριστώ
    Θέκλα

  34. Ο/Η vioannis λέει:

    Θέκλα, δεν είμαι σίγουρος ότι κατάλαβα ακριβώς το πρόβλημά σου, ούτε που εμπλέκεται το excel. Όταν λες Λίστα1 και Λίστα2 μάλλον εννοείς στήλες. Έκανα δύο διαφορετικά Pivot για τις στήλες αυτές. Έναν για να δω ποια έργα αντιστοιχούν σε κάθε δέσμη (και την πολλαπλότητα κάθε έργου) και έναν για να δω ποιες δέσμες αντιστοιχούν σε κάθε έργο και πήρα τους πίνακες που βλέπεις στην παρακάτω εικόνα: Αυτό προσεγγίζει το θέμα σου;

    Μια άλλη σκέψη που έκανα είναι ότι αναζητάς το πλήθος των μοναδικών τιμών των έργων που αντιστοιχούν σε κάθε δέσμη, δηλαδή μια συνάρτηση που για τη δέσμη WP1 να επιστρέφει 3, γιατί η WP1 αντιστοιχεί σε 3 διαφορετικά έργα (και όχι 4 διότι 4 φορές εμφανίζεται η WP1 στον πίνακα). Αν έτσι είναι τα πράγματα, ο παρακάτω αρκετά μεγάλος τύπος θα λύσει το πρόβλημα:

    =SUM(--(MATCH(IF($B$2:$B$50=E1;E1&$A$2:$A$50;"");IF($B$2:$B$50=E1;E1&$A$2:$A$50;"");0)=ROW(INDIRECT("1:"&ROWS($A$2:$A$50)))))-1
    

    Όπου
    A2:A50 είναι η Λίστα 1
    B2:B50 είναι η Λίστα 2
    E1 είναι το κελί που περιέχει τιμή από τη Λίστα 2, δηλαδή την τιμή ενός έργου. Την τιμή του έργου μπορείς να γράψεις κατευθείαν στον τύπο, αντί για E1 γράψε:

    "WP1"
    

    Πρόσεχε, είναι ένας Ctrl+Shift+Enter τύπος. Για να εισάγεις μία Ctrl+Shift+Enter συνάρτηση: Γράφεις τη συνάρτηση στο κελί. Πατάς F2 και μετά πατάς Ctrl+Shift+Enter. Το excel αυτόματα περιβάλλει την συνάρτηση σε άγκιστρα: { } Δες το σχετικό σημείωμα στο ιστολόγιο: «συναρτήσεις – πίνακες ή Ctrl+Shift+Enter συναρτήσεις». Δεν είμαι σίγουρος ότι σε κάλυψα, επανέρχεσαι άφοβα όποτε θέλεις.

  35. Ο/Η Παναγιώτης λέει:

    Γεια χαρά.
    Από αυτό το ελληνικό ιστολόγιο πήρα ιδέες, και βρήκα λύση κατά καιρούς σε απορίες μου και είμαι ευγνώμων γι αυτό.
    Ήθελα να ρωτήσω αν γίνεται σε μη προστατευμένο κελί να κάνω μη διαθέσιμη την αποκοπή και το drag end drop, επιτρέποντας ίσως μόνο την αντιγραφή.( με VBA?) . Βασικά δεν με πειράζει η αποκοπή γιατι εχω προστατεύσει τα σχετιζόμενα κελιά με INDIRECT, αλλά χάνω την μορφοποίηση που έχω δώσει στο συγκεκριμένο κελί. (Βρήκα λύσεις με VBA που απενεργοποιούν την αποκοπή και το drag end drop αλλά μόνιμα και μετά το κλείσιμο σε ολα τα αρχεια excel) .
    Καμμιά ιδέα?
    Ευχαριστώ!

  36. Ο/Η vioannis λέει:

    Παναγιώτη, εκτός από τις vba τεχνικές που περιγράφεις (τεχνικές που είναι πολύ διαφορετικές στις διάφορες εκδόσεις του excel, με μερικά και ίσως αμφίβολα αποτελέσματα), δεν γνωρίζω άλλο τρόπο. Αν μου επιτρέπεις μια συμβουλή από την εμπειρία μου, επένδυσε σε χρόνο εκπαίδευσης των καλόπιστων χρηστών του βιβλίου σου. Από τους κακόπιστους δεν σε προφυλάσσει τίποτα.

  37. Ο/Η Παναγιώτης λέει:

    Κ. Γιάννη, στην επιλογή γραμματοσειρών υπάρχει Cambria (επικεφαλίδες) και Calibri (κυρίως κείμενο). Αν χάσεις τη μορφοποίηση επιστρέφει αυτόματα στη Calibri. Μήπως μπορεί να αλλάξει η προεπιλεγμένη γραμματοσειρά;
    Δεν πρόκειται για «κακόπιστους», είναι θέμα πόρωσης και πειραματισμού…

  38. Ο/Η vioannis λέει:

    Πήγαινε στις επιλογές του excel, Δημοφιλείς, και στο πτυσσόμενο πλαίσιο των γραμματοσειρών επίλεξε αυτή που θες και το μέγεθος που θες. Θα σου ζητήσει να κλείσεις το excel και να το ανοίξεις ξανά. Κάντο. Είμαι φανατικός οπαδός της πώρωσης που προέρχεται από μαθησιακό πείσμα και του πειραματισμού!

  39. Ο/Η ΤΟΜΟΣΟΓΛΟΥ ΚΥΡΙΑΚΟΣ λέει:

    Καλησπερα, σε τεχνικο γραφειο για Δημοσια εργα , εχουμε ενα κοινο δικτυακο δισκο , οπου ειναι τα αρχεια μας , excel & word ,& pdf κυριως. Χρησιμοποιουμε τις ρουτινες σας, για ολογραφη αναγραφη αριθμων , (ποσοτητες και ευρω ) αλλα και για πραξεις σε αριθμοσειρες ( για επιμετρησεις ποσοτητων ). Το προβλημα μας ειναι οτι ενω ολοι εχουμε τις ρουτινες αυτες, στους υπολογιστες μας , αν ανοιξουμε το ιδιο αρχειο απο αλλον υπολογιστη , δεν αναγνωριζει τις συναρτησεις χρηστη (παρ ολο που υπαρχουν σε ολους ) βγαζοντας μηνυμα «ΟΝΟΜΑ». Ετσι απαιτειται να επαναοριστουν οι συναρτησεις και να λειτουργουν στον νεο Η/Υ , χωρις ομως να λειτουργουν στον προηγουμενο. Υπαρχει τροπος ωστε να λυθει ο προβλημα μας?
    Πως μπορουμε να δινουμε το αρχειο αυτο στις Τεχνικες υπηρεσιες των Φορεων , και να λειτουργουν οι συναρτησεις χρηστη?.Ποιος ειναι ο καταλληλος τυπος αποθηκευσης αρχειων (xlsm , xlsx ή κατι αλλο ) ?? Ευχαριστω.

  40. Ο/Η vioannis λέει:

    Κυριάκο, ένα βιβλίο που περιέχει μακροεντολές ή vba συναρτήσεις γραμμένες σε ένα module του βιβλίου πρέπει να αποθηκεύεται σαν xlsm βιβλίο. Κατά τη διανομή του σε άλλους χρήστες δεν παρουσιάζει πρόβλημα, αρκεί κατά το άνοιγμα ο χρήστης να ενεργοποιεί τις μακροεντολές. Τώρα σε επίπεδο δικτύου, ο μόνος που μπορεί να απαντήσει είναι ο φροντιστής του δικτύου. Τα κοινόχρηστα αρχεία excel πρέπει να έχουν δηλωθεί σαν κοινόχρηστα. Δες σε αυτή εδώ την απάντηση μου (Ιουλίου 19, 2014, σελίδα About) μερικές σχετικές με το θέμα διευθύνσεις της Microsoft. Αλλά πιο καλά να συζητήσεις το θέμα με τον συντηρητή του δικτύου.

  41. Ο/Η Giannis λέει:

    Καλημέρα κύριε Βαρλάμη

    Καταρχάς συγχαρητήρια για το site και τη δουλειά σας !

    Το πρόβλημα είναι το εξής:
    Έχω μια στήλη στο excel όπου υπάρχουν ώρες της μορφής 00:00:00 πμ/μμ.
    Θέλω σε μια άλλη στήλη να εμφανίζει ημερομηνίες που να εναλλάσσονται ανάλογα με τηνώρα που έχω. Για παράδειγμα όταν η ώρα φτάσει 12:00:00 πμ να αλλάξει η ημέρα για παράδειγμα από 24/5/2015 να γίνει 25/5/2015. Η αρχική ημερομηνία πρέπει να δηλώνεται από εμένα.

    Ευχαριστώ πολύ για το χρόνο σας..!

  42. Ο/Η vioannis λέει:

    Giannis, Πολύ τηλεγραφική η ερώτησή σου. Τι κάνει τις ώρες να αλλάζουν; μια μακροεντολή, μια συνάρτηση; πχ η =NOW(). Η ώρα θα πάει 00:00:00 από δικιά σου ενέργεια ή από το ρολόι του συστήματος; Αν πάει από το σύστημα, υπάρχει η συνάρτηση =TODAY() και άλλες συναρτήσεις χρόνου που παρακολουθούν το ρολόι του συστήματος. Κάνε μια αναλυτική περιγραφή στο πρόβλημα.

  43. Ο/Η Giannis λέει:

    Πιο αναλυτικά λοιπόν, έχω μια στήλη με ώρες της μορφής 00:00:00 πμ/μμ. Οι ώρες αυτές είναι δηλωμένες από εμένα και δεν αλλάζουν με μακροεντολές ή κάτι τέτοιο γι’ αυτό κιόλας δεν το περιέγραψα παραπάνω. Ουσιαστικά θέλω ένα τρόπο ώστε όταν «βλέπει» ότι η ώρα είναι μεγαλύτερη από 11:59:59 μμ να αλλάζει την ημέρα πχ από 22/4/2012 να πάει 23/4/2012. Η αρχική ημερομηνία, η οποία θα αντιστοιχεί στην πρώτη δηλωμένη ώρα θα πρέπει να ορίζεται από εμένα.

    9:09:40 μμ 22/4/2012
    9:09:40 μμ 22/4/2012
    9:09:49 μμ 22/4/2012
    9:09:49 μμ 22/4/2012
    9:09:49 μμ 22/4/2012
    9:09:49 μμ 22/4/2012
    9:10:49 μμ 22/4/2012
    9:11:49 μμ 22/4/2012
    9:12:49 μμ 22/4/2012
    9:13:49 μμ 22/4/2012
    .
    .
    .
    .
    .
    12:01:23 πμ 23/4/2012

    Πιστεύω να σας βοήθησα..!
    Ευχαριστώ και πάλι..

  44. Ο/Η vioannis λέει:

    Giannis, Αν οι ώρες είναι στη στήλη Α, από το κελί Α1 και κάτω, και οι ημερομηνίες στη στήλη Β, τότε καθόριζε χειριστικά την ημερομηνία στο κελί Β1 με τον τύπο:

    =DATE(2012;4;22+A1)
    

    Στο κελί Β2 γράψε τον τύπο

    =DATE(YEAR($B$1);MONTH($B$1);DAY($B$1)+A2)
    

    και αυτόν αντίγραψε έως τέλος της στήλης. Οι τύποι αυτοί κάνουν σωστά ότι ζητάς ακόμα και αν η ημερομηνία είναι 31 Δεκεμβρίου δηλαδή =DATE(2012;12;31+A1)

  45. Ο/Η Valentinos λέει:

    καλησπέρα παιδιά… ψάχνω να βρω μια συνάρτηση που να μου επιστρέφει τυχαίους αριθμούς 9ψηφιους που να περιέχουν από το 1-9 χωρίς να επαναλαμβανωντε (π.χ. 123456789, 234568197)…. υπάρχει κάτι ή έστω κάποιος κώδικας??? ευχαριστώ….

  46. Ο/Η vioannis λέει:

    Κατέβασε από εδώ τον κώδικα της Myrna Larson και κάνε αντιμετάθεση (Permutations) για τους αριθμούς 1-9 και θα πάρεις όλους τους μοναδικούς 9-ψήφιους

  47. Ο/Η Valentinos λέει:

    πως θα το κάνω αυτό???

  48. Ο/Η vioannis λέει:

    Βαλεντίνο, Ζήτησες κώδικα και κώδικα σου υπέδειξα. Φαντάστηκα ότι μπορείς να τον χειριστείς. Το πρόβλημά σου όμως έχει ενδιαφέρον για αυτό θα σου ετοιμάσω μια πιο λάιτ λύση. Ξαναέλα αργότερα.

  49. Ο/Η vioannis λέει:

    Βαλεντίνο, Κατέβασε το βιβλίο UniqueNineDigit.xls από εδώ ή εδώ. Στο κελί F1 γράψε πόσους αριθμούς θέλεις και πάτα το πλήκτρο. Στη στήλη Α θα εμφανιστούν οι μοναδικοί 9-ψήφιοι που περιέχουν όλα τα ψηφία 1-9. Το πρόγραμμα τρέχει σε όλες τις εκδόσεις excel, αλλά στην έκδοση 2003 και παλιότερες αν ζητήσεις πολλούς αριθμούς (περισσότερους από 1000) θα καθυστερήσει αρκετά. Στις εκδόσεις 2007 και νεώτερες, ο κώδικας είναι πιο γρήγορος γιατί ενσωματώνει το εργαλείο ‘Κατάργηση διπλοτύπων’. Τους αριθμούς παράγει η vba συνάρτηση RANDBETWEENplus η οποία είναι πνευματικό παιδί του ιστολογίου. Η περιγραφή της και ο κώδικάς της παρουσιάστηκε στο σημείωμα ‘Συναρτήσεις τυχαίων αριθμών

  50. Ο/Η Valentinos λέει:

    Ευχαριστώ πάρα πολύ φίλε μου… Αλλά τώρα μου εμφανίστηκε άλλο πρόβλημα…
    Δεν χωράνε όλοι οι αριθμοί σε μια στήλη… Πως μπορώ να τα χωρίσω και σε άλλες στήλες???

  51. Ο/Η vioannis λέει:

    Βαλεντίνο, Μήπως δεν μιλάμε για το ίδιο πράγμα; Πόσους αριθμούς παρήγαγες; Υπάρχουν 9! (παραγοντικό)=362.880 συνολικά τέτοιοι μοναδικοί αριθμοί.Πως δεν χωράνε σε μία στήλη;

  52. Ο/Η Valentinos λέει:

    εμένα η στήλη χωράει 65536….. τι έχω κάνει λάθος???

  53. Ο/Η vioannis λέει:

    Άρα δουλεύεις σε excel 2003 ή πιο παλιό. Ποιο;
    Και ακόμα δεν έχεις πει σαφώς αν αναζητάς όλους τους αριθμούς ή μερικούς και πόσους.

  54. Ο/Η Valentinos λέει:

    το 2010 σε win 8.1…. Τους αναζητώ όλους τους αριθμούς ή σε μια στήλη ή σε περισσότερες ή ακόμα καλύτερα σε 9 στήλες που κάθε στήλη να έχει 9ψηφιους που να ξεκινάνε από τον ίδιο αριθμό…

  55. Ο/Η vioannis λέει:

    Ο κώδικας που σου έστειλα δεν είναι για αυτό που ζητάς. Παράγει μόνο μερικούς. Αφού θέλεις όλους τους αριθμούς ξαναγυρίζουμε στην αρχική απάντηση με τον κώδικα της Myrna Larson . Δεν υπάρχει άλλη λύση. Δες σε αυτή εδώ την απάντηση μου πως θα εγκαταστήσεις τον κώδικα

  56. Ο/Η Valentinos λέει:

    Μπορείς να μου πεις στον κώδικα της Myrna Larson τι πρέπει να αλλάξω για να μου βγάλει τους 9ψηφιους??? Ευχαριστώ πάρα πολύ για τον χρόνο σου…

  57. Ο/Η vioannis λέει:

    Βαλεντίνο, κατέβασε το βιβλίο myrnalarsonpermutation.xlsm.
    Μην αλλάξεις τίποτα στη στήλη Α.
    Πάτα το πλήκτρο.
    Θα προστεθεί ένα νέο φύλλο με τους 362880 αριθμούς.

  58. Ο/Η Valentinos λέει:

    Σε ευχαριστώ πάρα πολύ φίλε μου… Με το excel που μου έστειλες έλυσα έναν από τους πιο δύσκολους γρίφους που έχω συναντήσει…. Και πάλι σε ευχαριστώ….

  59. Ο/Η Δημήτρης λέει:

    Γιάννη γεια σου. Έχω μία ερώτηση, που αφορά την εντολή Set της VBA. Θα ήθελα να σε ρωτήσω αν υπάρχει τρόπος, ένα πλήθος εντολών Set, να είναι προσβάσιμες σε περισσότερες από μία υπομονάδα (Sub);
    Να είναι δηλαδή Public.

  60. Ο/Η vioannis λέει:

    Δημήτρη, Δες στο παρακάτω παράδειγμα μια λύση:

    Option Explicit
    
    Public aa As Range
    Public bb As Worksheet
    Public cc As Variant
    Public dd As Date
    Public ee As Long
    Const ff As Long = 123456
    Const gg As String = "Καλημέρα"
    
    Private Sub xxxx()
    Set aa = ActiveWorkbook.Worksheets("Φύλλο1").Range("a1")
    Set bb = ActiveWorkbook.Worksheets("Φύλλο2")
    cc = Array("Γιώργος", "Νίκος", "Τάκης")
    dd = VBA.Date
    ee = aa * aa - Int(aa)
    End Sub
    
    Sub testI()
    Call xxxx
    MsgBox aa.Value
    End Sub
    
    Sub testII()
    Call xxxx
    MsgBox bb.Name
    End Sub
    
    Sub testIIΙ()
    Call xxxx
    MsgBox cc(2)
    End Sub
    
    Sub testIV()
    Call xxxx
    MsgBox dd
    End Sub
    
    Sub testV()
    Call xxxx
    MsgBox ee
    End Sub
    
    Sub testVI()
    MsgBox ff & "-" & gg
    End Sub
    

    στην κορυφή του module δηλώνεις τις μεταβλητές και στη συνέχεια σε μία private Sub, στο παράδειγμα Private Sub xxxx(), δίνεις τιμές στις μεταβλητές. Οι σταθερές μπορούν να οριστούν στην περιοχή των δηλώσεων.
    Μετά κάθε Sub του module θα ξεκινά καλώντας την Sub xxxx. Δες στο παράδειγμα, κάθε μάκρο test ξεκινά με Call xxxx
    Μια άλλη λογική είναι η Private Sub xxxx να φύγει από το module και να περάσει σαν μακροεντολή Workbook_Open στο ThisWorkbook έτσι:

    Private Sub Workbook_Open()
    Set aa = ActiveWorkbook.Worksheets("Φύλλο1").Range("a1")
    Set bb = ActiveWorkbook.Worksheets("Φύλλο2")
    cc = Array("Γιώργος", "Νίκος", "Τάκης")
    dd = VBA.Date
    ee = aa * aa - Int(aa)
    End Sub
    

    ΟΙ δηλώσεις θα παραμείνουν στο module, αλλά θα διαγραφούν όλες οι γραμμές Call xxxx από τις μακροεντολες. Την ενημέρωση των μεταβλητών με τιμές, την εξασφαλίζει πια η Sub Workbook_Open(). Και η δεύτερη, και περισσότερο η πρώτη είναι σταθερές και ήπιες λύσεις.

  61. Ο/Η Δημήτρης λέει:

    Γιάννη σε ευχαριστώ για την απάντηση, αλλά μάλλον η ροή ελέγχου των δεδομένων θα είναι πολύ αργή, λόγο του ότι οι εντολές Set θα διαβάζονται ξανά κάθε φορά που καλείτε η κάθε ρουτίνα τύπου Private Sub xxxx(). Η σκέψη μου ήταν οι εντολές Set να διαβαστούν μία φορά, οι τιμές τους να είναι public, γιατί έτσι το πρόγραμμα θα τρέχει πολύ πιο γρήγορα, δεδομένου ότι πρέπει να γίνουν χιλιάδες έλεγχοι. Πιο συγκεκριμένα… αν θυμάσαι προσπαθούσα να φτιάξω ένα πρόγραμμα τυχαίων 5άδων ή 6άδων για ΤΖΟΚΕΡ & ΛΟΤΤΟ, και ήμουν η αιτία για τις συναρτήσεις τυχαίων αριθμών που δημιούργησες. Εξελίσσοντας το πρόγραμμα δημιούργησα ένα φύλλο εργασίας με το όνομα «περιορισμοί» που κάθε γραμμή περιέχει έναν περιορισμό π.χ. B10:X10= Μονά 1,3,5,κ.λ.π. ή B15: F15= Λήγοντες σε 1,11, 21,31,41. Στο ίδιο φύλλο και στις στήλες AC και AD έχω τους περιορισμούς. Παράδειγμα: το κελί AC15=0, το κελί AD15=2. Αυτό σημαίνει πως από τους λήγοντες B10:X10 ζητώ η τυχαία 5άδα πού ελέγχεται να περιέχει από 0 έως 2 αριθμούς από τους λήγοντες 1,11, 21,31,41. Αν αυτό δεν συμβεί, η τυχαία 5άδα απορρίπτεται από τον έλεγχο πού διενεργεί η Private Sub elenxos().
    Στην αρχή της Private Sub LakyNumbers() περιέχονται όλες οι εντολές Set, και ακολουθεί ο έλεγχος.
    Παράδειγμα:

    Public Sub LakyNumbers(Arithmoi, Set2, orizontia, katheta)
       Dim m As Integer
       'Dim L(1 To 45) As Integer
       Dim NumberCollection As New Collection
       Dim exStr As String
    Dim exInt As Integer
    Dim exception As Range
    Dim keli As Range
    Dim mum As Integer
    Dim A8roism, i1 As Integer
    Dim i2 As Byte
    
    Set exception = Worksheets("περιορισμοί").Range("B3:AO3")
    Set mona = Worksheets("περιορισμοί").Range("B5:X5")
    Set zyga = Worksheets("περιορισμοί").Range("B6:w6")
    Set mikra = Worksheets("περιορισμοί").Range("B7:W7")
    Set megala = Worksheets("περιορισμοί").Range("B8:X8")
    '
    '
      'Μονά-------------------------------------------------------
    If Sheets("περιορισμοί").Cells.Range("AB5").Value = 1 Then
    i2 = 0
    For i1 = 0 To (Arithmoi - 1)
    For Each keli In mona
       If L(i1 + 1) = keli.Value Then
      i2 = i2 + 1
    End If
    Next keli
    Next i1
    If i2  Sheets("περιορισμοί").Cells.Range("AD5").Value Then
     GoTo Exodos
    End If
    End If
    'Ζυγά-------------------------------------------------------
    If Sheets("περιορισμοί").Cells.Range("AB6").Value = 1 Then
    i2 = 0
    For i1 = 0 To (Arithmoi - 1)
    For Each keli In zyga
       If L(i1 + 1) = keli.Value Then
      i2 = i2 + 1
    End If
    Next keli
    Next i1
    If i2  Sheets("περιορισμοί").Cells.Range("AD6").Value Then
     GoTo Exodos
    End If
    End If
    '
    '
    κ.λ.π
    

    Υπάρχουν στην ίδια Sub περίπου 70 διαφορετικοί περιορισμοί.
    Τελικά η ρουτίνα λειτουργούσε σωστά, και αρκετά γρήγορα, γιατί διάβαζε μόνο μία φορά τις εντολές Set, και στη συνέχεια διενεργούσε τους ελέγχους.
    Τα πράγματα άλλαξαν όταν πρόσθεσα περισσότερους περιορισμούς, και τις αντίστοιχες εντολές Set. Η ρουτίνα βγαίνει μεγαλύτερη σε όγκο δεδομένων από τα 64kb που επιτρέπει η VBA με αποτέλεσμα την διακοπή του προγράμματος, και εμφάνιση λάθους από τον compiler.
    ….Καμιά ιδέα???

  62. Ο/Η Giannis λέει:

    Γιάννη καλημέρα !

    Θα ήθελα, αν μπορείς, να με βοηθήσεις σε ένα πρόβλημα. Θέλω να φτιάξω ένα bubble diagram το οποίο όμως θα έχει εύρος τιμών, δηλαδή τα χ και τα ψ να κυμαίνονται σε κάποια όρια τα οποία προφανώς θα ορίζονται από εμένα.

    Ευχαριστώ πολύ.

  63. Ο/Η vioannis λέει:

    Giannis, δώσε ένα παράδειγμα των μεταβλητών τιμών χ και γ και πως θέλεις να τα ορίζεις

  64. Ο/Η Giannis λέει:

    Για παράδειγμα, στο πρώτο δείγμα το χ να κυμαίνεται από 0 μέχρι 30 και το ψ από 0 μέχρι 15, στο δεύτερο δείγμα το χ από 3 μέχρι 35, το ψ από 0 μέχρι 50 κοκ..

  65. Ο/Η vioannis λέει:

    Με τα δεδομένα Α1:C8 στο Φύλλο1:

    θα πάρεις το διάγραμμα φυσαλίδας:

    Θυμίζω ότι ένα γράφημα φυσαλίδας είναι ουσιαστικά ένα γράφημα διασποράς (ΧΥ όπως αλλιώς λέγεται) που απεικονίζει τα σημεία του επιπέδου (x,y) δηλαδή: (1,23), (2,27), (3,24) κλπ Στο γράφημα φυσαλίδας χρειάζεται και την τρίτη στήλη για να καθαρίσει το μέγεθος της κάθε φυσαλίδας

    Αν τώρα κάνεις κλικ πάνω σε μία φυσαλίδα, στη γραμμή τύπων θα δεις την παρακάτω συνάρτηση:

    =SERIES(Φύλλο1!$B$1;Φύλλο1!$A$2:$A$8;Φύλλο1!$B$2:$B$8;1;Φύλλο1!$C$2:$C$8)
    

    Αυτή η συνάρτηση είναι όλο το γράφημα. Ας αναλύσουμε ένα-ένα τα ορίσματά της:
    Φύλλο1!$B$1 είναι ο τίτλος του γραφήματος (το y).
    Φύλλο1!$A$2:$A$8 είναι οι τιμές του οριζόντιου άξονα (τιμές x).
    Φύλλο1!$B$2:$B$8 είναι οι τιμές του κάθετου άξονα (τιμές y).
    1: Δηλώνει ότι αυτή είναι η πρώτη(και στην περίπτωσή μας μοναδική) στήλη δεδομένων.
    Φύλλο1!$C$2:$C$8 είναι οι τιμές που καθορίζουν το μέγεθος της κάθε φυσαλίδας.
    Κάθε ένα από τα ορίσματα αυτά, που εδώ είναι διευθύνσεις κελιών, μπορείς να το επιλέξεις και να το αντικαταστήσεις από άλλες διευθύνσεις κελιών στο ίδιο ή σε άλλο φύλλο, από σταθερούς πίνακες αριθμών, όχι όμως από άλλες συναρτήσεις που επιστρέφουν πίνακες αριθμών. Υπάρχει όμως η δυνατότητα για μερικές συναρτήσεις (OFFSET, INDEX) να εισαχθούν σαν ονόματα στο βιβλίο και τα ονόματα να εισέρθουν σαν ορίσματα στην συνάρτηση SERIES . Ας δούμε ένα παράδειγμα. Εισάγεις στο βιβλίο τα παρακάτω ονόματα-συναρτήσεις:

    timesX  =OFFSET(Φύλλο1!$A$2;0;0;COUNTA(Φύλλο1!$A:$A)-1;1)
    timesY  =OFFSET(Φύλλο1!$B$2;0;0;COUNTA(Φύλλο1!$B:$B)-1;1)
    timesB  =OFFSET(Φύλλο1!$C$2;0;0;COUNTA(Φύλλο1!$C:$C)-1;1)
    

    Οι συναρτήσεις OFFSET παρακολουθούν τις εγγραφές στις στήλες Α,Β,C και επιστρέφουν τις τιμές από τη γραμμή 2 έως την τελευταία κάθε φορά εγγραφή. Τώρα τροποποιείς την συνάρτηση SERIES ως εξής:

    =SERIES(Φύλλο1!$B$1;Βιβλίο1.xlsx!timesX;Βιβλίο1.xlsx!timesY;1;Βιβλίο1.xlsx!timesB)
    

    Με τον τρόπο αυτό, κάθε φορά που προσθέτεις ή αφαιρείς σειρές δεδομένων, το γράφημα προσαρμόζεται αυτόματα, και έτσι δεν χρειάζεται να ξαναφτιάχνεις ή να το προσαρμόζεις κάθε φορά. Έτσι μπορείς να ορίζεις με όποιο τρόπο θέλεις τα δεδομένα σου στις στήλες Α,Β,C και το γράφημα να τις παρακολουθεί. Αμέσως τρόπος να εισαχθούν οι τιμές Χ και Υ στον τύπο του γραφήματος με συνάρτηση δεν νομίζω ότι υπάρχει. Μόνο σαν σταθεροί πίνακες μπορούν να εισαχθούν:

    =SERIES("y";{1;2;3;4;5;6;7;8;9;10};{23;27;24;20;31;29;21;25;30;50};1;{5;2;7;3;2;1;5;4;1;5})
    

    αλλά έτσι δημιουργείς στατικό γράφημα το οποίο δεν αλληλεπιδρά με τα αρχικά δεδομένα

  66. Ο/Η Despotis N. λέει:

    Κε Γιάννη αφού πρώτα σας ευχαριστήσω για το πολύ ενδιαφέρον και χρησιμότατο site θα ήθελα να σας παραθέσω το εξής πρόβλημα που αντιμετωπίζω στο Excel μήπως έχετε κάποια λύση – ιδέα.
    Σε ένα αρχείο excel είναι καταχωρημένο σε 6 στήλες μορφοποιημένο κείμενο (bold, italic, colours) 60 χιλ. γραμμές. Προσπαθώ να βρω τρόπο να τις εισάγω σε memo rich text πεδία της Ms access και δυστυχώς δεν έχω βρει τρόπο ούτε εξάγοντας το excel σε διάφορες μορφές xml, html ούτε εκτελώντας vba. Ο μόνος τρόπος είναι copy / paste χειροκίνητα αλλά κάτι τέτοια πρέπει να γίνει 6*60 χιλ. (μάλλον αδύνατον).
    Μήπως ξέρετε κάποιον εύκολο και γρήγορο τρόπο να μετατραπεί το μορφοποιημένο κείμενο του excel σε απλή HTML ώστε με κώδικα να το εισάγω ή εάν έχετε να προτείνετε κάποια άλλη ιδέα.
    Σας ευχαριστώ πολύ εκ των προτέρων.

  67. Ο/Η Stazybο Hοrn λέει:

    Δες αυτό:
    asap utilities, export, selection as HTML table
    http://asap-utilities.com/

  68. Ο/Η vioannis λέει:

    Επίσης στην παρακάτω διεύθυνση θα βρεις ένα πρόσθετο που υπόσχεται: Automatically Convert Formatted Excel Text into HTML
    http://weijie.info/InMyHead/automatically-convert-formatted-excel-text-into-html/

  69. Ο/Η elc.kostas λέει:

    Γεια σας Κε Βαρλάμη και συγχαρητήρια για το ιστολόγιό σας.

    Θα ήθελα την βοήθειά σας .
    Σε ένα βιβλίο εργασίας έχω 2 φύλλα . Το ένα λέγεται «data» και περιέχει ένα πίνακα με 30 γραμμές και 8 στήλες. Είναι η κατάσταση μαθητών ενός σχολείου. Οι στήλες είναι : Α/Α , ΕΠΩΝΥΜΟ , ΟΝΟΜΑ , ΤΑΞΗ , ΤΜΗΜΑ , ΕΤΟΣ ΓΕΝΝ. , ΤΗΛ. #1 & ΤΗΛ. #2.
    Αυτό που θα με βοηθούσε πολύ θα ήταν αν στο δεύτερο φύλλο (το ονομάζω «class») στο κελί Α1 όταν πληκτρολογώ την τάξη (π.χ. «C1»), να μου επιστρέφει μια λίστα όπως αυτή που βρίσκεται στο «data» με τα ονόματα των μαθητών της τάξης που ζήτησα.

    Ευχαριστώ πολύ.
    Κώστας

  70. Ο/Η elc.kostas λέει:

    Σας στέλνω και το αρχείο , νομίζω θα βοηθήσει.
    http://s000.tinyupload.com/index.php?file_id=04141968296798832395
    Ευχαριστώ και πάλι.
    Κώστας

  71. Ο/Η vioannis λέει:

    Κώστα, δες το θέμα του ιστολογίου ‘Γρήγορο φιλτράρισμα μιας λίστας’. Είναι πολύ κοντά σε αυτό που ζητάς. Αν δεν σε καλύπτει, πες το. Η λύση θα είναι πάλι μια απλή μάκρο. Το θέμα αυτό δεν αντιμετωπίζεται εύκολα με συναρτήσεις φύλλου.

  72. Ο/Η elc.kostas λέει:

    Ναι! όχι μόνο με βοήθησε πολύ αλλά μου δίνει τη δυνατότητα να φιλτράρω και άλλες καταστάσεις που έχω σε άλλα φύλλα εργασίας.
    Σας ευχαριστώ πολύ.
    Εύχομαι καλή δύναμη και καλή συνέχεια στο έργο σας.
    Κώστας

Τα σχόλια είναι απενεργοποιημένα.