Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Πρόγραμμα εργασίας- Εφημερίες- Επιτηρήσεις- Κατανομή προσωπικού σε βάρδιες (πόστα) (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/6444-programma-ergasias-efimeries-epitiriseis-katanomi-prosopikoi-se-bardies-posta.html)

kapetang 31-01-23 14:28

1 Συνημμένο(α)
Καλησπέρα

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

Επειδή κάθε μέρα απαιτούνται 14 εργαζόμενοι, για να λειτουργήσει το πρόγραμμα, οι διαθέσιμοι
(αυτοί που μένουν μετά την αφαίρεση των κωλυομένων) πρέπει να είναι, κάθε μέρα, >=14.

Στο πρόγραμμα έχουν γίνει αρκετές μεταβολές, ώστε να είναι ευκολότερη η προσαρμογή του:

1) Οι ημερομηνίες δε συμπληρώνονται με τύπους, αλλά με το εργαλείο που διαθέτει το Excel για τη συμπλήρωση σειρών ημερομηνιών.

Αυτό δίνει τη δυνατότητα εισαγωγής γραμμών (αν έχουμε πχ βάρδια Κυριακή) ή διαγραφής γραμμών (αν κάποιες ημερομηνίες πέφτουν σε διακοπές).

2) Για τη διευκόλυνση της προσθήκης και της διαγραφής γραμμών, στο φύλλο "Program" αφαίρεσα τις στήλες με τα ονόματα και τις συνολικές βάρδιες και τα στοιχεία τα πρόσθεσα στο φύλλο "Data"

3) Όταν επιλέγουμε προσωπικό για μία ημερομηνία, ο κώδικας υπολογίζει τις συνολικές βάρδιες, κάθε διαθέσιμου εργαζόμενου πριν από την ημερομηνία και επιλέγει τους 14 με τις λιγότερες βάρδιες.

Έτσι επιτυγχάνεται εξισορρόπηση στις βάρδιες.

Αν στον υπολογισμό του συνολικού αριθμού των βαρδιών, κάθε εργαζόμενου, υπολογίζονταν μόνο οι βάρδιες που γίνονται μέσα στη μονάδα, η εξισορρόπηση θα γίνονταν μέσα στη μονάδα και όσοι κάνουν βάρδιες και εκτός μονάδας θα μπορούσαν να θεωρηθούν αδικημένοι.

Για τη λύση αυτού του προβλήματος (αν θεωρηθεί πρόβλημα) πρόσθεσα στο φύλλο "Data" και τη στήλη "Βάρδιες αλλού".

Κάνε δοκιμές, πατώντας αρκετές φορές το κουμπί "Προσθήκη", για να διαπιστωθεί ότι το πρόγραμμα, λειτουργεί σωστά και μετά κάνε τις αναγκαίες προσαρμογές πχ στις ημερομηνίες, σε τίτλους στηλών, κλπ.

charasara 31-01-23 21:34

1 Συνημμένο(α)
Γιατί όταν πατάω Προσθήκη μου βγάζει ένα κινέζικο μήνυμα; και δεν δινει αποτελεσμα;

kapetang 31-01-23 23:28

Στην ημερομηνία πχ 31/1/2023, από τα 28 άτομα μόνο 7 είναι διαθέσιμα, σε άλλες είναι και λιγότερα.

Πως από τους 7 διαθέσιμους θα πάρουμε 14;

Όπως γράφω οι διαθέσιμοι, κάθε μέρα, πρέπει να είναι >=14.

Το μήνυμα γράφει: «Δεν επαρκούν οι διαθέσιμοι», το βγάζει κινέζικα επειδή πιθανόν δεν υπάρχει κάποια γραμματοσειρά στον υπολογιστή σου.

Είναι περίεργο πάντως από τα 28 άτομα τα περισσότερα άτομα να κάνουν εξωτερικές βάρδιες

kapetang 01-02-23 21:12

2 Συνημμένο(α)
Καλησπέρα

Οι εργαζόμενοι, στη συγκεκριμένη περίπτωση, απαιτείται, κάθε μέρα, να καλύψουν 2 βάρδιες (πχ πρωινή, απογευματινή) σε 7 πόστα.

Διακρίνουμε 2 περιπτώσεις:

1) Κάθε εργαζόμενος μπορεί να κάνει την ημέρα το πολύ 1 βάρδια (είτε εσωτερική είτε εξωτερική).

Συνεπώς κάθε μέρα απαιτούνται τουλάχιστον 14 διαθέσιμοι (χωρίς εξωτερική βάρδια, αναρωτική και άδεια)

2) Κάθε εργαζόμενος μπορεί να κάνει την ημέρα και 2 (μία πρωινή και μία απογευματινή) βάρδιες.

Συνεπώς κάθε μέρα απαιτούνται τουλάχιστον 7 διαθέσιμοι (χωρίς αναρωτική και άδεια)

Οι βάρδιες μπορεί να είναι και οι 2 εσωτερικές ή μία εσωτερική και μία εξωτερική.

Επισυνάπτω 2 αρχεία:

Το ProgramWork14ByDayData3.xlsm είναι για την 1η περίπτωση.

Το ProgramWork14ByDayData2Vardies.xlsm είναι για τη 2η περίπτωση

Ο κώδικας είναι αρκετά πολύπλοκος και μπορεί κάτι να μου διέφυγε.

Θα χαρώ αν, μετά από δοκιμές, μου επισημανθεί κάποιο λάθος ή απρόσμενη συμπεριφορά.

charasara 02-02-23 13:53

Καλησπέρα! Καταρχήν ευχαριστώ πολύ για τον χρόνο που αφιερώνετε!!!

Οι συνάδελφοι που κάνουν εφημερίες εξωτερικές (σε άλλο σχολείο) δεν μπαίνουν καθόλου στη λίστα.
Οπότε όσα ονόματα γράφονται στο excel είναι ατόμων που εφημερεύουν μόνο εσωτερικά (στο δικό μας σχολείο).
Εκείνο που προσπαθώ είναι οι συνάδελφοι να κάνουν εφημερία σε μια βάρδια τη μέρα ανάλογα με το ωράριο τους.
Π.χ. κάποιος που ξεκινάει 3η ώρα και τελειώνει 7η να μπορεί να μπει μόνο στη δεύτερη βάρδια άρα να φαίνεται μη διαθέσιμος για την πρώτη βάρδια (και το αντίστροφο).
Επίσης προσπαθώ να μπαίνουν σε κάθε πόστο με μια κυκλικότητα (ώστε να μην έχω παράπονα οτι κάποιος μπαίνει συχνά στην ίδια θέση).
Θα δοκιμάσω την 1η περίπτωση που μου στείλατε..
Ευχαριστώ πολύ!

kapetang 02-02-23 15:58

Καλό είναι να δοκιμάσεις και τη δεύτερη περίπτωση κάνοντας τις ακόλουθες επιλογές στα κωλύματα:

1) «Α βάρδια», κάποιος μπορεί, με βάση το ωράριό του, να μπει στη «Β βάρδια»

2 ) «Β βάρδια», κάποιος μπορεί, με βάση το ωράριό του, να μπει στη «Α βάρδια»

3) Τίποτα (κενό), μπορεί να μπει και στις 2 βάρδιες

Τονίζω ότι στην 1η λύση (1ο αρχείο) επιλέγονται μόνο αυτοί που δεν έχουν κανένα κώλυμα (το αντίστοιχο κελί είναι κενό).

Λες κάτι για ωράρια, αλλά δε δίνεις λεπρομέρειες (πότε αρχίζουν και πότε τελειώνουν, κλπ).

Εδώ οι λεπτομέρειες έχουν σημασία.

charasara 02-02-23 20:52

1) Λοιπόν απ’ ότι κατάλαβα στο δεύτερο αρχείο αν επιλέξω στα κωλύματα «Α Βάρδια» θα αποκλειστεί από την «Α Βάρδια» και θα μπορεί να επιλεγεί μόνο για τη «Β Βάρδια» (και το αντίστροφο).
Αυτό εξυπηρετεί!!!
2) Αν πάλι δεν βάλω κανένα κώλυμα θα μπορεί να επιλεγεί και στις 2 βάρδιες (υπάρχει ο περιορισμός μια βάρδια τη μέρα για κάθε εκπαιδευτικό; Ή θα μου βγάζει το ίδιο άτομο και στις 2 βάρδιες;).
3) Το ωράριο του κάθε εκπαιδευτικού δεν είναι σταθερό, τη μια μέρα μπορεί να έρχεται από την 1η ώρα, την άλλη την 3η ώρα και μια άλλη μέρα να έχει μάθημα 1η έως 7η ώρα. Αυτό αλλάζει δυστυχώς συχνά γιατί όταν κάποιος συνάδελφος λείπει (άδεια, αναρρωτική…), γίνεται προσαρμογή του προγράμματος ώστε τα παιδιά να μην έχουν κενά. Αυτό δεν μπορεί να προβλεφθεί από το πρόγραμμα σας! Αυτό θα το φτιάχνω εγώ κάθε φορά που θα έχω τέτοια αλλαγή προσαρμόζοντας τα κωλύματα από την αρχή.
Ελπίζω να βοήθησα να καταλάβετε.

Πάντως για να μη σας ταλαιπωρώ άλλο εμένα μου αρκεί να μπορεί να λειτουργήσει:
• το 1)
• το 2) (με μέγιστο μια βάρδια τη μέρα για τον εφημερεύοντα)
• και να επιλέγονται κάθε φορά οι εκπαιδευτικοί με τις λιγότερες εφημερίες.

kapetang 02-02-23 21:48

Όπως σχεδιάστηκε το πρόγραμμα ισχύουν τα εξής:

1) Το 1ο

2) Όταν δεν υπάρχει κώλυμα κάποιος μπορεί να εμφανιστεί και στις 2 βάρδιες.

Είναι κάπως απίθανο αλλά μπορεί να παρουσιαστεί.

Με αντιγραφή/επικόλληση μπορείς να τον αντικαταστήσεις με άλλο διαθέσιμο από αυτούς που έχουν τις λιγότερες εφημερίες (φαίνονται στο φύλλο Data)

3) Το 3ο ισχύει.

Γίνεται εξισορρόπηση των συνολικών κατά εργαζόμενο εφημεριών.

Δεν γίνεται όμως και ανά πόστο.

Εδώ έχεις τη δυνατότητα με αντιγραφή/επικόλληση να αναδιατάξεις τους επιλεγέντες από το πρόγραμμα.

Κάνε δοκιμές δες πως λειτουργεί και ενημέρωσέ με.

Εγώ θα προσπαθήσω να περιορίσω τις βάρδιες σε 1 και ίσως σκεφτώ κάτι και για την εξισορρόπηση ανά πόστο.

kapetang 03-02-23 14:54

1 Συνημμένο(α)
Καλησπέρα

Επισυνάπτω, για δοκιμή μία τελική μορφή του προγράμματος.

1) Επιτρέπει το πολύ μία εφημερία

2) Εξισορροπεί τις συνολικές, στα διάφορα πόστα, υπηρεσίες.

3) Εξισορροπεί ικανοποιητικά και τις υπηρεσίες ανά πόστο.

Έχω κάνει αρκετές αλλαγές για να είναι έτοιμο για χρήση:

1) Αφαίρεσα τα πλαίσια κειμένου βοήθειας από τα φύλλα Data και Program και τα μετέφερα στα αντίστοιχα φύλλα HelpData και HelpProgram.

2) Επειδή ενδέχεται να μη εμφανίζονται σωστά κάποια μηνύματα που παρουσιάζει το πρόγραμμα, πρόσθεσα το φύλλο Messages.

3) Πρόσθεσα το φύλλο Sumary, όπου εμφανίζονται αναλυτικά κατά πόστο οι υπηρεσίες κάθε εργαζόμενου.

Στο φύλλο Data έχω προσθέσει τη στήλη «Πριμοδότηση».

Ο ρόλος της εξηγείται στο φύλλο HelpData.

Επισημάνσεις για τυχόν λάθη και βελτιώσεις είναι ευπρόσδεκτες.

pant 07-02-23 11:15

καλημερα
Βλέποντας το ενδιαφέρων του καλου φιλου Γιωργο , θα τολμήσω να ζητήσω κατι που για πολυ καιρο με απασχολούσε μιας και το εχει φρεσκο.
1. Καποιος καθηγητης θελει να κανει επιτηρηση 1η και 2η βαρδια την ιδια ημερα
2. καποιοι καθηγητες που εχουν πολλες εισηγήσεις να κανουν λίγες επιτηρήσεις και αντιστροφα

Καλο θα ηταν και στις 2 περιπτωσεις να ελεγχονται χειροκίνητα , τσεκάροντας τους αντίστοιχους καθηγητές
ευχαριστω
Γρηγόρης


Η ώρα είναι 10:10.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2