Ed feltette az e heti Excel kérdést.
Szükségem van egy egyszerű Excel makróra, amely keres - mondjuk - a C oszlopban, és pirosan kiemeli a mai dátumot (aktuális dátumot) tartalmazó cellákat, és sárga színnel kiemeli az oszlop bármely más celláját, amely a mai naptól számítva 15 nap a jövőben?
Az Excel 97 vagy az Excel 2000 felhasználói kihasználhatják az új Feltételes formázás lehetőséget. Először kitérünk arra, hogyan lehet ezt először makró nélkül csinálni.
- Ugrás a C1 cellára.
- A menüből válassza a Formátum, a Feltételes formátum lehetőséget
- A párbeszédpanel bal oldalán változtassa meg a legördülő listát a következőre: "Formula is"
- A párbeszédpanel jobb oldalán írja be:
=INT(C1)=TODAY()

- Kattintson a formátumra, kattintson a Minták elemre, válassza a Piros lehetőséget. Kattintson az OK gombra
- Kattintson a Hozzáadás…
- A párbeszédpanel bal oldalán változtassa meg a legördülő listát a következőre: "Formula is"
- A párbeszédpanel jobb oldalán írja be:
=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
- Kattintson a Formátum, a Minták, a Sárga választás gombra. Kattintson az OK gombra.
- Kattintson az OK gombra a feltételes formátum hozzárendelésének befejezéséhez a C1 cellához.

Ha a formátumot helyesen adják meg, a C1 cella vörösre változik, ha a mai dátumot tartalmazza, és sárgára, ha a dátum a következő 15 hétre esik. A TODAY () függvény ebben a formátumban biztosítja, hogy ha egy másik napon megnyitjuk a munkafüzetet, akkor piros színnel emeli ki az adott nap celláit.
Most átmásolhatja a C1 cellát, kiemelheti az összes adatot a C oszlopban, és elvégezheti a Szerkesztés> Speciális beillesztés> Formátumok> OK lehetőséget, hogy alkalmazza ezt a formátumot a C oszlop minden cellájára.
A következő makró automatizálja a feltételes formátum hozzárendelését:
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
Az Excel 95 felhasználóknak nincs feltételes formázása, de használhatna egy ilyen makrót:
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
A feltételes formátumfüggvény képletfunkciója nagyon hatékony, és lehetővé teszi a különféle kritériumoknak megfelelő cellák kiemelését.