Ed položil tento týden Excel otázku.
Potřebuji jednoduché makro aplikace Excel, které prohledá - řekněme - sloupec C a zvýrazní červeně buňky, které obsahují dnešní datum (aktuální datum), a zvýrazní žlutě jakoukoli jinou buňku ve sloupci, který bude od dnešního dne o 15 dní v budoucnu?
Uživatelé aplikace Excel 97 nebo Excel 2000 mohou využít výhody nové možnosti Podmíněné formátování. Pojďme se zabývat tím, jak to udělat ručně bez makra jako první.
- Přesunout do buňky C1.
- Z nabídky zvolte Formát, Podmíněný formát
- V levé části dialogového okna změňte rozevírací seznam tak, aby se zobrazilo „Vzorec je“.
- Na pravé straně dialogového okna zadejte:
=INT(C1)=TODAY()

- Klikněte na formát, klikněte na vzory, vyberte červenou barvu. Klikněte na OK
- Klikněte na Přidat …
- V levé části dialogového okna změňte rozevírací seznam tak, aby se zobrazilo „Vzorec je“.
- Na pravé straně dialogového okna zadejte:
=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
- Klikněte na Formát, Klikněte na Vzory, Vyberte Žlutou. Klikněte na OK.
- Kliknutím na OK dokončete přiřazení tohoto podmíněného formátu buňce C1.

Pokud je formát zadán správně, buňka C1 se změní na červenou, pokud obsahuje dnešní datum, a na žlutou, pokud je datum v příštích 15 týdnech. Funkce TODAY () ve formátu zajistí, že pokud sešit otevřete v jiný den, zvýrazní se červeně buňky pro daný den.
Nyní můžete zkopírovat buňku C1, zvýraznit všechna data ve sloupci C a provést Úpravy> Vložit jinak> Formáty> OK použít tento formát na každou buňku ve sloupci C.
Následující makro automatizuje přiřazení podmíněné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
Pro uživatele aplikace Excel 95 nemáte podmíněné formátování, ale můžete použít toto 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
Funkce vzorce funkce podmíněného formátu je velmi výkonná a umožní vám zvýraznit buňky, které vyhovují různým kritériím.