Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Μορφοποίηση] Μορφοποίηση με απόδοση γράμματος (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/6289-morfopoiisi-me-apodosi-grammatos.html)

Immortal 31-03-23 15:27

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

ChrisGT7 31-03-23 18:32

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

Έλεγξε το συνημμένο αρχείο αν είναι εντάξει.

Immortal 31-03-23 20:30

Καλησπέρα Χρήστο, μόλις είδα την πρότασή σου και δυστυχώς μπερδεύονται λιγάκι τα πράγματα, επειδή στις υπόλοιπες ημέρες έχω και κάποια άλλα δεδομένα που αλλάζουν, θα δώσω ένα παράδειγμα στο συνημμένο ώστε να γίνει κατανοητό χωρίς να παραλείψω κάτι!
Ξεκινώντας από τον Α/Α 1 έως και τον Α/Α 62 και με την 1η εργάσιμη ημερομηνία έχω το γράμμα Κ συνεχόμενα στις ημερομηνίες, όπου υπάρχει ΕΝΑ στην στήλη C, στην ίδια ημερομηνία έχω μόνο ένα Κ, στις υπόλοιπες 2 Κ.
Από τον Α/Α 63 μέχρι το τέλος ξεκινώ πάλι από την 1η εργάσιμη μέχρι όσο πάει.
Σε ευχαριστώ πολύ για τον χρόνο σου

ChrisGT7 31-03-23 20:44

Νίκο,

Διόρθωσέ με αν κάνω λάθος: εσύ γράφεις μέσα στην περιοχή H9:CT97 διάφορα γράμματα/αριθμούς και όταν ισχύουν οι προϋποθέσεις Πέμπτης/Παρασκευής που είπες προηγούμενως, θέλεις αυτόματα να αλλάζουν τα δεδομένα σε Ε;

Αν ισχύει κάτι τέτοιο, τότε πιστεύω μόνο με κώδικα μπορεί να επιτευχθεί αυτό.

Immortal 31-03-23 20:50

Ναι Χρήστο αυτό, εάν είναι εργάσιμη Κ και στις προϋποθέσεις Πέμπτης/Παρασκευής έχω σε όλη την στήλη της περιοχής που προανάφερες το Ε.

ChrisGT7 31-03-23 20:54

Τότε γιατί δεν κάνεις το άλλο και αρκετά απλό: Να ξεκινήσεις ανάποδα...

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

Δε θα βόλευε αυτός ο τρόπος;

Immortal 31-03-23 21:25

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

ChrisGT7 31-03-23 21:42

Μια μέθοδος είναι με ένα κουμπί να συμπληρώνονται σε όσες σειρές που έχουν στοιχεία (στήλες Β μέχρι G), όλα τα κελιά των εργάσιμων ημερών (στήλες H μέχρι CT) με Κ και Ε όπου αναφέρθηκε πριν. Οι χρωματισμοί των Σαββατοκύριακων θα ισχύουν κανονικά.

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

Κάτι τέτοιο θα βόλευε να φτιαχτεί με κώδικα;

Immortal 31-03-23 21:53

Οι στήλες B-G κανονικά περιέχουν δεδομένα, αλλά μπορούμε να προσθέσουμε επιπλέον στήλες για να γίνεται αυτό που λες.
Όσο για τον Φλεβάρη ούτε που το πρόσεξα!
Τώρα για τον κώδικα, δεν έχω πρόβλημα, εφόσον καταφέρει και δουλέψει έτσι.

ChrisGT7 31-03-23 23:47

1 Συνημμένο(α)
Νίκο,

Δοκίμασε το συνημμένο αρχείο αν σε καλύπτει. Πρέπει να ενεργοποιήσεις τις μακροεντολές για να λειτουργήσει το κουμπί ΕΝΗΜΕΡΩΣΗ.

Πατώντας το κουμπί ΕΝΗΜΕΡΩΣΗ, εκτελούνται οι παρακάτω ενέργειες:

1. Όλα τα κελιά Η9:CV97 συμπληρώνονται με Κ, εκτός των Σαββατοκύριακων και όσες γραμμές δεν έχουν Α/Α (στήλη Β). Θεώρησα πως αν δεν υπάρχει εκεί Α/Α, είναι κενή γραμμή.
2. Όλες οι Παρασκευές σημειώνονται με Ε αν δεν είναι αργίες, ενώ όσες είναι σημειώνονται οι Πέμπτες.

Όλοι οι μήνες έχουν 31 στήλες. Όταν αλλάζεις τρίμηνο, οι μαύρες στήλες είναι οι ημέρες που δεν ανήκουν στο συγκεκριμένο μήνα.

Immortal 01-04-23 08:34

Χρήστο καλή σου ημέρα! Σε ευχαριστώ που ασχολήθηκες με το αρχείο!
Το δούλεψα λίγο, σχετικά με τα Ε, είναι αυτό που θέλω. Με τα Κ όμως μάλλον χρειάζεται να σου δώσω άλλο παράδειγμα,
για την περιοχή Η9:CV97 όπου και θα υπάρχουν τα Κ, εάν στην περιοχή C9:C97 βάλεις τα δύο μας ονόματα, εάν τα πρώτα 10 ονόματα είναι ΝΙΚΟΣ τότε ξεκινώντας από την 1η εργάσιμη ημέρα μπορώ να έχω το Κ 2 φορές στην ίδια ημέρα, άρα ο Α/Α 1 & 2 με όνομα ΝΙΚΟΣ θα έχουν το Κ στην 1η εργάσιμη, ενώ όλες οι υπόλοιπες ημερομηνίες στις 2 σειρές δεν θα περιέχουν το Κ.
Τα επόμενα 2, στους Α/Α 3 & 4 δηλαδή, θα καταλάβουν το Κ στην 2η εργάσιμη, εφόσον η 1η καταλήφθηκε από τους πρώτους 2 Α/Α.κοκ
Αντίστοιχα για το όνομα ΧΡΗΣΤΟΣ, το οποίο σε 1 εργάσιμη ημέρα θα υπάρχει μόνο ένας.
Πιστεύω να μη σε μπέρδεψα!

Immortal 01-04-23 16:06

1 Συνημμένο(α)
Έχω ετοιμάσει ένα παράδειγμα για το έτος 2023 για όλα τα τρίμηνα ημερολόγια.
Στην στήλη C έχω προσθέσει ονόματα για την ευκολότερη κατανόησή του. Για κάθε στήλη-ημερομηνία μπορώ να εισάγω 2 φορές το ΝΙΚΟΣ και 1 φορά το ΓΙΩΡΓΟΣ όπως φαίνεται στις κίτρινες σειρές. Για το ΧΡΗΣΤΟΣ ισχύει ότι για το ΝΙΚΟΣ, αλλά ξεκινάει κι αυτό από την 1η εργάσιμη του ημερολογίου.
Για κάθε τρίμηνο ημερολόγιο ξεκινάω πάντα από την 1η εργάσιμη και όλες οι καταχωρήσεις είναι σε συνέχεια.
Το ΤΡ είναι το Κ που είχα σε προηγούμενο βιβλίο.
*Έχω σβήσει το 4ο τρίμηνο ημερολόγιο γιατί δεν ανέβαινε το αρχείο λόγω μεγέθους.

ChrisGT7 01-04-23 20:06

Καλησπέρα Νίκο,

Διόρθωσέ με αν έχω καταλάβει κάτι λάθος:

1. Εσύ θα έχεις ήδη συμπληρώσει τα Κ και ΤΡ στα άτομα που πρέπει, ώστε ο κώδικας να ξέρει πόσα και σε ποιους να επαναλάβει. Στο αρχείο σου, έχεις βάλει από 2 ΤΡ στο Νίκο και Χρήστο και από 1 ΤΡ στο Γιώργο, οπότε επαναλαμβάνονται αυτά ανά 2 και άνα 1 αντίστοιχα τις επόμενες εργάσιμες ημέρες.

2. Με το πάτημα του κουμπιού, θα συμπληρώνονται τα Ε, ώστε να ξεχωρίζουν οι Πέμπτες και Παρασκευές και εν συνεχεία θα επαναλαμβάνονται τα Κ και ΤΡ, όπως αναφέρθηκε στο 1.

Ο κώδικας θα πρέπει να γνωρίζει σε ποια γραμμή αλλάζει το άτομο, οπότε καλό θα ήταν να γίνεται με βάση κάποιο άλλο στοιχείο (π.χ. ΑΦΜ, αρ. μητρώου) και όχι βάσει του ονόματος, γιατί μπορεί να υπάρχουν άτομα με το ίδιο όνομα ή επίθετο. π.χ. ίσως η στήλη E να περιέχει αυτό το στοιχείο. Ίσως και η αλλαγή χρώματος ανά άτομο να βοηθούσε, όπως γίνεται στο Νίκο και στο Γιώργο αλλά δε γίνεται στο Νίκο και στο Χρήστο.

Αυτά χρειάζεσαι;

Immortal 01-04-23 21:17

Καλησπέρα Χρήστο
Αρχικά, το Κ το αφήνουμε και έχουμε να κάνουμε μόνο με το ΤΡ.
Όπως παρατήρησα, με το κουμπί ενημέρωση που δημιούργησες, τοποθετούνταν σε κάθε κενό κελί το Κ, ενώ αυτό που χρειάζομαι είναι μία φορά στην ίδια σειρά.
Όπως τοποθετούνταν το Κ παντού, γίνεται να τοποθετείται αυτόματα όπως τα έχω εισάγει στο τελευταίο βιβλίο; Εάν βέβαια είναι εφικτό να μην εισάγω χειροκίνητα κάτι στις στήλες με τις ημερομηνίες.
Για τις Πεμπτες-Παρασκευές βλέπω πως γίνεται ακριβώς αυτό που ήθελα.
Όσον αφορά τον κώδικα που αναφέρεις, θα σε βοηθούσε αν σου έλεγα πως στην στήλη με τα ονόματα, σε οποία σειρά και να εισαχθεί το ΧΡΗΣΤΟΣ σε καμιά περίπτωση δεν θα υπάρξει το ΤΡ στην ίδια ημερομηνία μαζί με οποιονδήποτε άλλον, είτε ΧΡΗΣΤΟΣ, είτε άλλο όνομα, οπότε θεωρώ πως αυτό δεν είναι μπέρδεμα.

ChrisGT7 02-04-23 00:13

1 Συνημμένο(α)
Νίκο,

Έλεγξε αν το συνημμένο είναι κοντά στο ζητούμενό σου.

Δεν μπορώ να πω με σιγουριά πως έπιασα τη λογική, αλλά όπως και να έχει, βασίστηκα σ' αυτό που θες να εισάγονται τα ΤΡ όπως τα έχεις στο αρχείο σου. Δηλαδή:

Θεωρώ, βάσει το αρχείο σου πάντα, δεδομένα 8 άτομα με σταθερές γραμμές και όσα άτομα είναι στις πορτοκαλί γραμμές, το ΤΡ επαναλαμβάνεται 1 φορά ανά γραμμή ενώ στα υπόλοιπα ανά ζεύγος.

Immortal 02-04-23 07:46

Καλημέρα Χρήστο, μόλις δοκίμασα την πρότασή σου. Κατάφερες να έχει το βιβλίο το αποτέλεσμα που χρειάζομαι.
Τώρα θα ήθελα να σε ρωτήσω για μία τροποποίηση, εάν είναι εφικτή να υλοποιηθεί βέβαια, διότι προκύπτει ένας περιορισμός, θα πρέπει τα ΧΡΗΣΤΟΣ να μην αλλάξουν ποτέ σειρά.
Όμως ενδέχεται σε κάποιες περιπτώσεις τα ΧΡΗΣΤΟΣ στην στήλη C να μετακινηθούν και να πάνε μερικές σειρές πιο πάνω ή και πιο κάτω, πάντα όμως θα είναι όλα μαζί, οπότε βάσει ενδεχόμενης μετακίνησής τους θα μπορούσε να υπάρχει το ίδιο αποτέλεσμα με το ΤΡ όπως εισάγονται τώρα;

*Στο παρακάτω κομμάτι κώδικα αντιλαμβάνομαι ότι αυτές είναι οι περιοχές που ορίζουν τις περιοχές που θα εισάγονται τα ΤΡ, ένα ή δύο. Σε περίπτωση που δεν μπορεί να αποφευχθεί ο περιορισμός που προανάφερα, θα μπορούσα να τροποποιήσω αναλόγως τις περιοχές στον κώδικα σε περίπτωση μετακίνησης των ΧΡΗΣΤΟΣ;

Κώδικας:

Case 9 To 14, 21 To 26, 33 To 38, 45 To 70
        Range(Cells(R, C), Cells(R + 1, C)).Value = "ΤΡ"
Case 15 To 20, 27 To 32, 39 To 44
      Cells(R, C).Value = "ΤΡ"
      R = R + 1

Όπως κ να έχει σε υπέρ ευχαριστώ για τον χρόνο που διέθεσες ώστε να φτάσει το βιβλίο σε αυτό το αποτέλεσμα, να είσαι καλά.

ChrisGT7 02-04-23 14:08

Καλησπέρα Νίκο,

Όπως σωστά αναφέρεις, το συγκεκριμένο κομμάτι κώδικα ευθύνεται για την επανάληψη του ΤΡ (ή Κ, αν θες να το αντικαταστήσεις) στις γραμμές των διαστημάτων της εντολής Case. Οπότε αν θες να ανεβάσεις ή να κατεβάσεις το ΧΡΗΣΤΟΣ, θα πρέπει να τροποποιήσεις ανάλογα τις γραμμές και τα διαστήματα. Λίγο προσοχή όμως θα χρειαστεί και στις επαναλήψεις του ΤΡ/Κ, γιατί άλλα ονόματα έχουν από δύο επαναλήψεις και άλλα από μία.

Αν δεν τα καταφέρεις, με ενημερώνεις ανάλογα.

Immortal 02-04-23 16:04

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

Immortal 01-04-24 10:10

1 Συνημμένο(α)
Καλημέρα!
Επανέρχομαι στο παραπάνω αρχείο διότι θα ήθενα να προσθέσω αρκετές σειρές ακόμη. Τις έχω προσθέσει, δουλεύει όπως πρέπει να δουλεύει, αλλά μου ενημερώνει κελιά, εκτός περιοχής, με ΤΡ, τα οποία δεν θα έπρεπε. Τι δεν έχω ενημερώσει σωστά στον κώδικα;

ChrisGT7 01-04-24 16:18

Καλησπέρα και καλό μήνα Νίκο,

Δοκίμασε να προσθέσεις τις παρακάτω γραμμές πάνω από τη γραμμή Application.ScreenUpdating = True:
Κώδικας:

R = Range("B" & Rows.Count).End(xlUp).Row + 1
Rows(R & ":" & Rows.Count).ClearContents


Immortal 02-04-24 08:48

Καλημέρα Χρήστο καλό μήνα! Σε ευχαριστώ πολύ!

Immortal 24-08-24 20:16

1 Συνημμένο(α)
Καλησπέρα σε όλο το φόρουμ, πιστεύω να σας βρίσκω όλους καλά και να έχετε χαρεί όσο το δυνατόν περισσότερο καλοκαίρι, μπάνια και ξεκούραση!

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

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

Η αλλαγή που χρειάζεται να κάνω είναι το πως θα καταχωρούνται τα ΤΡ.

Με τα νέα δεδομένα το σκεπτικό μου είναι το εξής:
Έλεγξε στην περιοχή CX36:CX60 κάθε ένα δεδομένο της περιοχής C10:C158 και σύμφωνα με τον αριθμό της ίδιας γραμμής στην περιοχή CY36:CY60 καταχώρησε στην ίδια ημέρα (δηλαδή στην ίδια στήλη) τοσα ΤΡ.
Επίσης εαν είναι Ναι η επιλογή στην στήλη "Έναρξη εισαγωγών από την αρχή" τότε στην ίδια γραμμή ξεκίνα την καταχώρηση των ΤΡ από την πρώτη διαθέσιμη ημερομηνία που δεν είναι αργία ή επίσημη αργία ή έχει Ε.
Επίσης πριν και μετά για κάθε αριθμό 1, μπορεί στην ίδια στήλη πριν και μετά να υπάρχει ΤΡ για τους τύπους οχήματος που έχουν αριθμό 2.

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

Δεν ξέρω κατά πόσο εφικτό μπορεί να είναι αυτό, εαν δεν σας είναι κόπος να ρίξετε μια ματιά θα σας ήμουν ευγνώμων!


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

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


Search Engine Optimization by vBSEO 3.3.2