Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Γενικά] Εμφάνιση συγκεντωτικου πίνακα αδειών της τρέχουσας ημέρας από ημερολόγιο Exel (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/4687-emfanisi-sygkentotikoy-pinaka-adeion-tis-trexoysas-imeras-apo-imerologio-exel.html)

xaxas 27-09-17 13:28

Εμφάνιση συγκεντωτικου πίνακα αδειών της τρέχουσας ημέρας από ημερολόγιο Exel
 
1 Συνημμένο(α)
Χαιρετώ όλα τα μέλη του καταπληκτικού αυτού φόρουμ. Θέλω να ρωτήσω πως θα μπορούσα να εμφανίζω σε ξεχωριστό πίνακα, ημερολογίου αδειών exel, τις άδειες που έχουν πάρει οι εκπαιδευτικοί του σχολείου έτσι ώστε να έχω μια συγκεντρωτική εικόνα για το πόσοι και ποιοι ονομαστικά θα απουσιάζουν στο ξεκίνημα έναρξης του ωραρίου. Παραθέτω σχετική φόρμα ημερολογίου exel.
Σας ευχαριστώ εκ των προτέρων για την βοήθειά σας.

Spirosgr 27-09-17 17:34

Καλησπέρα
Κάνε το βιβλίο σου .xlsm, για να μπορεί να εκτελέσει κώδικα.
Αντέγραψε τον πιο κάτω κώδικα στο φύλλο Sheet14(ΓΙΑ ΣΗΜΕΡΑ ΘΑ ΑΠΟΥΣΙΑΖΟΥΝ )

Μπαίνοντας στο φύλλο, χωρίς καμία άλλη ενέργεια θα έχουμε το ζητούμενο.

Κώδικας:

Private Sub Worksheet_Activate()

    Sheets(14).Range("f3:g7").ClearContents 'αλλαγή σημείο 2

    Dim isheet As Byte _
      , iday As Byte _
      , imonth As Byte _
      , i As Byte _
      , k As Byte _
      , icol As Byte _
      , rng As Range _
      , c As Range _
      , abse As String _
      , namd As String

    iday = Day(Date)
    imonth = Month(Date)
    k = 3
    Set rng = Sheets(imonth).Range("c6:ag6")

    For Each c In rng
        If c.Value = iday Then
            icol = c.Column

            For i = 7 To 11 'αλλαγή σημείο 1
                If Sheets(imonth).Cells(i, icol).Value <> "" Then

                    abse = Sheets(imonth).Cells(i, icol).Value
                    namd = Sheets(imonth).Cells(i, 2).Value

                    Sheets(14).Cells(k, 6).Value = namd
                    Sheets(14).Cells(k, 7).Value = abse
                    k = k + 1

                End If
            Next i

        End If
    Next c
End Sub

Ο κώδικας ισχύει για την συγκεκριμένη μορφή (γραμμές - στήλες) των φύλλων
καθώς και την σειρά που έχουν στο βιβλίο πχ Ιανουάριος - πρώτο, Φευρουάριος - δεύτερο ... ΓΙΑ ΣΗΜΕΡΑ ΘΑ ΑΠΟΥΣΙΑΖΟΥΝ - δέκατο τέταρτο κλπ

Προσοχή:
Στην μορφή που έχουν τα φύλλα, οι υπάλληλοι βρίσκονται στις γραμμές 7 - 11.
Αν αυξήσουμε τους υπαλλήλους και συνεπώς τις γραμμές, θα πρέπει να
αλλάξουμε το i = 7 To 11 στο σημείο αλλαγής 1
Ανάλογα με αυτό, θα αλλάξουμε και στην αρχή την περιοχή εμφάνισης
Sheets(14).Range("f3:g7").ClearContents στο σημείο αλλαγής 2

Βοήθεια για τις αλλαγές:
Ανάλογα με το i το κελί g, έχει μειωμένο αριθμό κατά 4.
Αν λοιπόν αλλάξουμε το i σε
For i = 7 To 20 για παράδειγμα, τότε το κελί g7 στην περιοχή εμφάνισης, θα γίνει
Sheets(14).Range("f3:g16")

kapetang 27-09-17 20:25

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

Και μια άλλη πρόταση.

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

Περισσότερα στο συνημμένο.

xaxas 27-09-17 21:18

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

Manolis Nikolidakis 31-12-21 12:09

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

dealer_xm 02-01-22 18:14

Καλησπέρα και Καλή Χρονιά,

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

kapetang 04-01-22 17:52

Καλή χρονιά

Σκέφτομαι μια λύση με χρήση συγκεντρωτικού πίνακα.

Θα επανέλθω μόλις την ολοκληρώσω.

kapetang 04-01-22 22:28

1 Συνημμένο(α)
Χρόνια πολά

Για τον συγκεντρωτικό υπολογισμό των απουσιών ανά κατηγορία, στο συνημμένο, πρόσθεσα τα φύλλα PT_HLP και PT.

Προτίμησα, με κώδικα, τα στοιχεία των απουσιών μέχρι κάποια συγκεκριμένη ημερομηνία, να συγκεντρώνονται σε μία κατάλληλη τρίστηλη λίστα (φύλλο PT_HLP).

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

Λεπτομέρειες στο συνημμένο.

Σημείωση:

Χρήστο (Dealer_xm) στο συνημμένο υλοποίησα και αυτό που ζητάς.

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

dealer_xm 08-01-22 13:44

1 Συνημμένο(α)
Καλησπέρα Γιώργο,

Σ`ευχαριστώ για τη βοήθεια σου. Είναι πραγματικά χρήσιμο και βολικό.

Αν κάνω αναζήτηση έως την ημερομηνία 2/1/2017 (που δεν υπάρχει κάποια προηγούμενη καταχώρηση άδειας) εμφανίζει το run-time error που επισυνάπτω. Θεωρείς πως είναι κάτι που επηρεάζει την υπόλοιπη προσπάθεια ή απλώς δεν του δίνω σημασία?

kapetang 08-01-22 15:16

Καλησπέρα

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

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

Κάνε δοκιμές μήπως βρεθεί και κάτι άλλο.


Η ώρα είναι 16:17.

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


Search Engine Optimization by vBSEO 3.3.2