Ed a pus săptămâna aceasta întrebarea Excel.
Am nevoie de o macrocomandă Excel simplă care să caute - să zicem - Coloana C și să evidențieze roșu celulele care conțin data de astăzi (data actuală) și să evidențieze galben orice altă celulă din coloană care este 15 zile în viitor de la data de azi?
Utilizatorii Excel 97 sau Excel 2000 pot profita de noua opțiune de formatare condiționată. Să prezentăm cum să faceți acest lucru manual fără o macrocomandă mai întâi.
- Treceți la celula C1.
- Din meniu, alegeți Format, Format condițional
- În partea stângă a dialogului, schimbați meniul derulant pentru a citi „Formula este”
- În partea dreaptă a casetei de dialog, introduceți:
=INT(C1)=TODAY()

- Faceți clic pe format, faceți clic pe Modele, alegeți Roșu. Faceți clic pe OK
- Faceți clic pe Adăugați …
- În partea stângă a dialogului, schimbați meniul derulant pentru a citi „Formula este”
- În partea dreaptă a casetei de dialog, introduceți:
=AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
- Faceți clic pe Format, Faceți clic pe Modele, alegeți Galben. Faceți clic pe OK.
- Faceți clic pe OK pentru a finaliza atribuirea acestui format condițional celulei C1.

Dacă formatul este introdus corect, celula C1 se va schimba în roșu dacă conține data de astăzi și în galben dacă data este în următoarele 15 săptămâni. Funcția TODAY () în format va asigura că, dacă deschidem registrul de lucru într-o altă zi, va evidenția în roșu celulele respectivei zile.
Acum puteți copia celula C1, evidențiați toate datele din coloana C și faceți Editare> Lipire specială> Formate> OK pentru a aplica acel format fiecărei celule din coloana C.
Următoarea macro va automatiza atribuirea formatului condițional:
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
Pentru utilizatorii de Excel 95, nu aveți formatare condiționată, dar puteți utiliza o macro de acest gen:
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
Funcția de formulă a funcției de format condiționat este foarte puternică și vă va permite să evidențiați celule care se potrivesc diferitelor criterii.