Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Εισαγωγή αδειών με UserForm (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/2207-eisagogi-adeion-me-userform.html)

Flashgordon61 25-11-12 11:29

Εισαγωγή αδειών με UserForm
 
Καλημέρα σε όλους
Με βάση το αρχείο του Τάσου στο θέμα http://www.ms-office.gr/forum/excel-...a-adeion.html] έκανα ένα αρχείο για καταγραφή των αδειών για το έτος 2013.
Επειδή το αρχείο είναι μεγάλο πρόσθεσα και την δυνατότητα επισήμανσης (Γραμμής-Στήλης-Κελιού) όπως περιγράφεται στα Χρήσιμα αρχεία & παραδείγματα http://www.ms-office.gr/forum/excel-...oy-kelioi.html .
Για τον ίδιο λόγο (το αρχείο είναι μεγάλο) σκέφθηκα αν είναι δυνατό η εισαγωγή των αδειών να γίνεται με UserForm [A = Άδεια εργασίας , I = Ιατρική Άδεια (Ασθένεια) , E = Ειδική Άδεια (Εγκυμοσύνης , Λοχείας , για τα παιδιά κλπ…)]
Σχεδίασα το UserForm χωρίς να βάλω τον κώδικα (δεν ξέρω αν το control MonthView κάνει για αυτή τη δουλειά).
Παρακαλώ την βοήθεια των ειδικών.

Γιώργος

Flashgordon61 25-11-12 11:32

1 Συνημμένο(α)
Το αρχείο που ξέχασα να επισυνάψω!!!!!!!!!

Thanosp 25-11-12 17:09

1 Συνημμένο(α)
Καλησπέρα σε όλους
Γιώργο κοίτα το συνημμένο
Θανάσης

Flashgordon61 25-11-12 18:12

Φίλε Θανάση σ’ ευχαριστώ πολύ :thanks::thanks::thanks:
Είναι σχεδόν αυτό που ζητούσα.
Αν στο UserForm προστεθεί και ένα CommandButton που να κάνει απαλοιφή (διαγραφή) των σαββατοκύριακων & εορτών θα άγγιζε την τελειότητα.
Σε κάθε περίπτωση , μου έλυσες τα χέρια.:011::011::011:

Και πάλι σ΄ ευχαριστώ.

Γιώργος

Thanosp 26-11-12 12:46

1 Συνημμένο(α)
Καλημέρα σε όλους
Γιώργο γειά σου, έχω κάνει μια προσπάθεια κοίτα το συνημμένο και τα λέμε

xristos 26-11-12 13:36

Φίλοι μου γειά σας.
Πράγματι είναι πολύ ωραίο το πρόγραμμα και απλό
Έκανα μια δοκιμή και το ΥΠΟΛΟΙΠΟ ΑΔΕΙΑΣ δεν δουλεύει... δηλ όταν βάζεις τις ημέρες δεν βγαίνουν οι υπόλοιπες, κάνω κάτι λάθος ή θέλεις διόρθωμα;;
Επίσης θα ήθελα να ρωτήσω πως αλλάζω το έτος (2014 κλπ) και πως μπορώ να προσθέσω και άλλα είδη αδειών
Ευχαριστώ τον Εμπευστή, Δημιουργό και τον Τελικό Σχεδιαστή του έργου αυτού

Flashgordon61 27-11-12 10:07

1 Συνημμένο(α)
Φίλε Θανάση σ΄ ευχαριστώ.

Απ΄ότι παρατήρησα ο κώδικας πρώτα εισάγει τις ημερομηνίες αδειών και μετά αφαιρεί τα Σαββατοκύριακα και τις αργίες.
Κώδικας:

If Weekday(xDate, vbMonday) >= 6 Or IsHoliday Then    '
                  cell.Value = ""

Στήνοντας το αρχείο προέκυψε μία νέα παράμετρος
Κάποιοι εργαζόμενοι εργάζονται Σάββατο και έχουν ρεπό μια άλλη μέρα της εβδομάδος.
Έχω σχεδιάσει το UserForm αλλά πρέπει να παραμετροποιηθεί ο κώδικας.
Περιμένοντας πάλι την πολύτιμη βοήθειά σου
Και πάλι σ΄ευχαριστώ:thanks:

Γιώργος

Flashgordon61 27-11-12 11:33

Φίλε Χρήστο καλημέρα.
Το αρχείο δεν έχει πρόβλημα
Στην στήλη OM (Σύνολο αδειών) καταμετρά τις άδειες (=IF(OJ7="";"";COUNTIF(C7:OH7;"a")+COUNTIF(C7:OH7; "α")) τα κελιά της γραμμής δηλαδή που έχουν το γράμμα Α.
Στην στήλη ΟΝ (Υπόλοιπο Αδείας) αφαιρεί από τις Άδειες Έτους (στήλη OL) το σύνολο των αδειών (=OL7-OM7)
Για να αλλάξεις το Έτος κάνεις τα παρακάτω
1) Στο κελί Β5 που έχει όνομα cYear βάζεις το επιθυμητό έτος (πχ 2014)
2) στο κελί C1 βάζεις την συνάρτηση =WEEKDAY(C6;2)>5
3) στο κελί C2 βάζεις την συνάρτηση =IFERROR(MATCH(C6;eortes;0);)
4) στο κελί C3 βάζεις την συνάρτηση =MOD(MONTH(C6);2)
5) Επιλέγεις τα κελιά C1 έως C3 και σέρνεις μέχρι τέλους (στήλη ΟΙ)
6) Στην γραμμή 4 και στην αρχή εκάστου μηνός γράφεις τους μήνες.
7) στο κελί C5 βάζεις την συνάρτηση =C6
8) Στο κελί C6 βάζεις την συνάρτηση =DATE(cYear;1;1)
9) Στο κελί D6 βάζεις την συνάρτηση =C6+1, το επιλέγεις και σέρνεις μέχρι τέλους (στήλη ΟΙ)

Δες το θέμα http://www.ms-office.gr/forum/excel-...ma-adeion.html

Για παραμετροποίηση περαιτέρω των ειδών αδείας (αν το συγκεκριμενοποιήσεις) χρειάζεται επιπλέον κώδικας (Το αφήνω στους ειδικούς......)

Γιώργος

Thanosp 27-11-12 12:13

1 Συνημμένο(α)
Καλημέρα
Γιώργο αν το Σάββατο είναι Επίσημη αργία, για την περίπτωση ρεπό να ξέρεις γίνεται πάντα απαλοιφή.
Θανάσης

xristos 27-11-12 12:20

Φίλοι του Φόρουμ ΚΑΛΗΜΕΡΑ σας.
Φίλε Γιώργο ευχαριστώ για την άμεση απάντησή σου.
Τα έκανα και έχω να προσθέσω στην λεπτομερή περιγραφή σου τις εξής επισυμάνσεις:
1) Εκεί που λες
Παράθεση:

7) στο κελί C5 βάζεις την συνάρτηση =C6
, πρέπει να προσθέσεις το επιλέγεις και σέρνεις μέχρι τέλους (στήλη ΟΙ)
το λέω για τους φίλους (όπως και εγώ) που δεν έχουμε και πολλές γνώσεις.....
2) Επίσης έχω να παρατηρήσω ότι όταν το έκανα όλα όσα μου είπε.. ενώ αλλάζω τα έτη και βγαίνουν κανονικά τα Σαββατοκύρια όταν πάω να περάσω μια άδεια δεν μου τα αφαιρεί..(Τα Σαββατοκύριακα)
3) Στην Λίστα και στο κελί ON7 που υπάρχει ο τύπος {=OL7-OM7} είναι ο ίδιος ο τύπος σε όλα τα υπόλοιπα κελιά ON8 κλπ. Επίσης για πέσμου πως μπαίνει το {} γιατί το έχω ξεχάσει.
Ελπίζω να μας βοηθήσουν (όπως κάνουν πάντα) και οι ειδικοί όσο αφορά τις επιπλέων άδειες.


Η ώρα είναι 02:11.

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


Search Engine Optimization by vBSEO 3.3.2