Ο Ed έθεσε την ερώτηση Excel αυτής της εβδομάδας.
Χρειάζομαι μια απλή μακροεντολή Excel που θα κάνει αναζήτηση - ας πούμε - Στήλη Γ και επισημαίνει κόκκινα τα κελιά που περιέχουν τη σημερινή ημερομηνία (τρέχουσα ημερομηνία) και επισημαίνει κίτρινο οποιοδήποτε άλλο κελί στη στήλη που είναι 15 ημέρες στο μέλλον από σήμερα.
Οι χρήστες του Excel 97 ή του Excel 2000 μπορούν να επωφεληθούν από τη νέα επιλογή μορφοποίησης υπό όρους. Ας καλύψουμε πώς να το κάνουμε χειροκίνητα χωρίς μακροεντολή.
- Μετακίνηση στο κελί C1.
- Από το μενού, επιλέξτε Μορφή, Μορφή υπό όρους
- Στην αριστερή πλευρά του διαλόγου, αλλάξτε το αναπτυσσόμενο μενού για να διαβάσετε το "Formula is"
- Στη δεξιά πλευρά του παραθύρου διαλόγου, εισαγάγετε:
=INT(C1)=TODAY()

- Κάντε κλικ στη μορφή, κάντε κλικ στο Μοτίβα, επιλέξτε Κόκκινο. Κάντε κλικ στο OK
- Κάντε κλικ στην Προσθήκη…
- Στην αριστερή πλευρά του διαλόγου, αλλάξτε το αναπτυσσόμενο μενού για να διαβάσετε το "Formula is"
- Στη δεξιά πλευρά του παραθύρου διαλόγου, εισαγάγετε:
=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
- Κάντε κλικ στη Μορφή, κάντε κλικ στα μοτίβα, επιλέξτε κίτρινο. Κάντε κλικ στο OK.
- Κάντε κλικ στο OK για να ολοκληρώσετε την εκχώρηση αυτής της μορφής υπό όρους στο κελί C1.

Εάν η μορφή εισαχθεί σωστά, το κελί C1 θα αλλάξει σε κόκκινο εάν περιέχει τη σημερινή ημερομηνία και σε κίτρινο εάν η ημερομηνία είναι στις επόμενες 15 εβδομάδες. Η συνάρτηση ΣΗΜΕΡΑ () στη μορφή θα διασφαλίσει ότι εάν ανοίξουμε το βιβλίο εργασίας σε άλλη ημέρα, θα επισημανθεί με κόκκινα κελιά για τη συγκεκριμένη ημέρα.
Τώρα μπορείτε να αντιγράψετε το κελί C1, να επισημάνετε όλα τα δεδομένα στη στήλη C και να κάνετε Επεξεργασία> Ειδική επικόλληση> Μορφές> OK για να εφαρμόσετε αυτήν τη μορφή σε κάθε κελί στη στήλη Γ.
Η ακόλουθη μακροεντολή θα αυτοματοποιήσει την εκχώρηση της μορφής υπό όρους:
Sub Macro2() Range("C1").Select Selection.FormatConditions.Delete Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=INT(C1)=TODAY()" Selection.FormatConditions(1).Interior.ColorIndex = 3 Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _ "=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)" Selection.FormatConditions(2).Interior.ColorIndex = 6 Selection.Copy FinalRow = Range("C15000").End(xlUp).Row Range("C2:C" & FinalRow).Select Selection.PasteSpecial Paste:=xlPasteFormats End Sub
Για χρήστες του Excel 95, δεν έχετε μορφοποίηση υπό όρους, αλλά θα μπορούσατε να χρησιμοποιήσετε μια μακροεντολή όπως αυτή:
Sub Macro95() ThisDate = Date FinalRow = Range("C15000").End(xlUp).Row For x = 1 To FinalRow ThisCell = Int(Range("C" & x).Value) If ThisCell = ThisDate Then Range("C" & x).Interior.ColorIndex = 3 Else DaysFromNow = ThisCell - ThisDate If DaysFromNow> 0 And DaysFromNow < 16 Then Range("C" & x).Interior.ColorIndex = 6 End If End If Next x End Sub
Η δυνατότητα τύπου της συνάρτησης μορφής υπό όρους είναι πολύ ισχυρή και θα σας επιτρέψει να επισημάνετε κελιά που ταιριάζουν σε διάφορα κριτήρια.