Markeer einddatums - Excel-tips

Ed stelde de Excel-vraag van deze week.

Ik heb een eenvoudige Excel-macro nodig die - laten we zeggen - kolom C zoekt en de cellen met de huidige datum (huidige datum) rood markeert en een andere cel in de kolom geel markeert die 15 dagen in de toekomst ligt vanaf de datum van vandaag?

Gebruikers van Excel 97 of Excel 2000 kunnen profiteren van de nieuwe optie voor voorwaardelijke opmaak. Laten we eerst bespreken hoe u dit handmatig kunt doen zonder een macro.

  • Ga naar cel C1.
  • Kies in het menu Opmaak, Voorwaardelijke opmaak
  • Wijzig aan de linkerkant van het dialoogvenster de vervolgkeuzelijst in "Formule is"
  • Voer aan de rechterkant van het dialoogvenster het volgende in: =INT(C1)=TODAY()
Voorwaardelijke opmaak instellen
  • Klik op formaat, klik op patronen, kies rood. Klik OK
  • Klik op Toevoegen…
  • Wijzig aan de linkerkant van het dialoogvenster de vervolgkeuzelijst in "Formule is"
  • Voer aan de rechterkant van het dialoogvenster het volgende in: =AND(INT(C1)>TODAY(),(INT(C1)-TODAY())<16)
  • Klik op Formaat, klik op patronen, kies geel. Klik OK.
  • Klik op OK om het toewijzen van deze voorwaardelijke indeling aan cel C1 te voltooien.
Voorwaardelijk opmaakresultaat

Als de indeling correct is ingevoerd, verandert cel C1 in rood als deze de datum van vandaag bevat en in geel als de datum in de komende 15 weken valt. De functie TODAY () in het formaat zorgt ervoor dat als we de werkmap op een andere dag openen, de cellen voor die specifieke dag rood worden gemarkeerd.

U kunt nu cel C1 kopiëren, alle gegevens in kolom C markeren en Bewerken> Plakken speciaal> Formaten> OK doen om dat formaat op elke cel in kolom C toe te passen.

De volgende macro automatiseert het toewijzen van het voorwaardelijke formaat:

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

Voor Excel 95-gebruikers heb je geen voorwaardelijke opmaak, maar je zou een macro als deze kunnen gebruiken:

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

De formulefunctie van de voorwaardelijke opmaakfunctie is erg krachtig en laat u cellen markeren die aan verschillende criteria voldoen.

Interessante artikelen...