Ed položil tento týždeň otázku programu Excel.
Potrebujem jednoduché makro programu Excel, ktoré bude prehľadávať - povedzme - stĺpec C a červene zvýrazní bunky, ktoré obsahujú dnešný dátum (aktuálny dátum), a zvýrazní žltou farbou akúkoľvek inú bunku v stĺpci, ktorý bude od dnešného dňa o 15 dní v budúcnosti?
Používatelia programov Excel 97 alebo Excel 2000 môžu využívať výhody novej možnosti podmieneného formátovania. Poďme si vysvetliť, ako to urobiť najskôr bez makra.
- Presunúť do bunky C1.
- Z ponuky zvoľte Formát, Podmienený formát
- V ľavej časti dialógového okna zmeňte rozbaľovaciu ponuku na možnosť „Vzorec je“.
- Na pravej strane dialógového okna zadajte:
=INT(C1)=TODAY()

- Kliknite na formát, kliknite na vzory, vyberte červenú farbu. Kliknite na tlačidlo OK
- Kliknite na Pridať …
- V ľavej časti dialógového okna zmeňte rozbaľovaciu ponuku na možnosť „Vzorec je“.
- Na pravej strane dialógového okna zadajte:
=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
- Kliknite na položku Formát, potom na položku Vzory a vyberte možnosť Žltá. Kliknite na tlačidlo OK.
- Kliknutím na OK dokončíte priradenie tohto podmieneného formátu k bunke C1.

Ak je formát zadaný správne, bunka C1 sa zmení na červenú, ak obsahuje dnešný dátum, a na žltú, ak je dátum najbližších 15 týždňov. Funkcia TODAY () vo formáte zabezpečí, že ak zošit otvoríme v iný deň, zvýrazní sa červenou farbou bunky pre konkrétny deň.
Teraz môžete skopírovať bunku C1, zvýrazniť všetky údaje v stĺpci C a vykonaním úprav> Prilepiť špeciálne> Formáty> OK použiť tento formát na každú bunku v stĺpci C.
Nasledujúce makro automatizuje priradenie podmieneného formátu:
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
Pre používateľov aplikácie Excel 95 nemáte podmienené formátovanie, ale môžete použiť takéto makro:
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
Funkcia vzorca funkcie podmieneného formátu je veľmi účinná a umožní vám zvýrazniť bunky, ktoré vyhovujú rôznym kritériám.