Voorwaardelijke opmaak
Zonder VBA
Een van de leukste tools in Excel is zonder twijfel
‘Voorwaardelijke opmaak’ , te vinden in het menu: ‘Opmaak’.
Deze tool geeft vaak uw werkblad dat ietsje meer waardoor
het ‘professioneel gaat lijken.
Bovendien is het helemaal niet zo moeilijk als het lijkt.
Mogelijkheden:
- Je
kan de opmaak van een cel wijzigen afhankelijk van de waarde in die cel,
of de waarde in een andere cel.
- Voorwaardelijke
opmaak werkt onmiddellijk, net zoals je van formules verwacht dat die
onmiddellijk werken bij het wijzigen van een waarde in een cel.
- Voorwaardelijke
opmaak heeft als doel om cellen te laten opvallen indien ze aan bepaalde
voorwaarden voldoen
- Voorwaardelijke
opmaak kan je eveneens afhankelijk laten zijn van cellen uit een ander
werkblad. Maar… In dit geval moet
je wel werken met namen.
Beperkingen:
- Er
kunnen slechts 3 voorwaardelijke opmaken worden ingesteld per cel. Het is dus niet mogelijk om afhankelijk
van de dag van de week een andere opmaak in te stellen (Dit zijn er immers
7)
- Indien
je de voorwaardelijke opmaak laat afhangen van een cel op een ander
werkblad, dan kan je geen gewone verwijzing gebruiken zoals: Blad1!A1.
- Via voorwaardelijke
opmaak kan je noch het lettertype, noch de lettergrootte veranderen.
Verplichtte vaardigheden om goed met voorwaardelijke
opmaak te kunnen werken:
De kracht van voorwaardelijke opmaak ligt vooral in het
gebruik van formules
- Een
goede kennis van de verschillende functies in Excel is zeker aan te
raden. Indien je die niet hebt, kan
je beter eerst één en ander over functies instuderen.
- Formules
in voorwaardelijke opmaak moeten steeds als uitkomst WAAR of ONWAAR
hebben. Zoals ook in vorig punt
gezegd: je moet formules kunnen verzinnen die als uitkomst WAAR of ONWAAR
hebben. WAAR heeft als resultaat
dat de voorwaardelijke opmaak wordt toegepast.
- Ook
zeer belangrijk is het verschil kennen tussen relatieve en absolute
verwijzingen. Het verschil dus
tussen b.v. A1; $A$1; $A1 en A$1
Met VBA:
Nadelen:
Ik begin hier met de nadelen, omdat ik vind dat die veel belangrijker zijn
dan de voordelen. Bovendien moet de
standaard functie ‘voorwaardelijke opmaak’ in Excel ruim voldoen voor hetgeen
men wenst te bereiken.
- De
gebruiker krijgt al bij het openen van het bestand de vraag om de macro’s
in te schakelen. Ook al zijn deze
macro’s enkel bedoeld voor een beetje opmaak.
- Het
bestand wordt al veel zwaarder, en trager door het gebruik van VBA.
- Afhankelijk
van de methode die men gebruikt is de voorwaardelijke opmaak verkregen
door VBA:
- Minder
betrouwbaar
- Trager
Voordelen:
Slechts één voordeel:
Je bent niet meer beperkt tot 3 opmaken.
Dit is meteen ook een nadeel, vermits voorwaardelijke opmaak bedoeld is
om iets te verduidelijken. Een bonte
verzameling van kleurtjes maakt de zaak echter verre van duidelijk.
Methoden:
Voorwaardelijke opmaak via VBA moet steeds aan een
Event-macro gekoppeld worden.
Volgende Events zijn hiervoor bruikbaar:
- Private Sub
Worksheet_Change(ByVal Target As Excel.Range)
- Private Sub
Worksheet_Activate()
- Private Sub
Worksheet_SelectionChange(ByVal Target As Range)
De eerste event verdient mijn voorkeur. Deze werkt telkens er iets in het werkblad
gewijzigd wordt. Dit in tegenstelling
tot de laatste methode, die in aktie treed telkens je de selectie wijzigt. Deze laatste event zorgt dus voor een
constante belasting van uw systeem.
De tweede event belast het systeem het minste, maar treed
pas in actie op het ogenblik dat je het werkblad activeert. Niet vroeger, maar ook niet later.
Bij het gebruik van de eerste en de tweede event heb je
vervolgens de keuze om of alle cellen te controleren, of enkel de gewijzigde
cel. Eerste methode neemt weer meest
tijd en geheugen in beslag. Tweede
methode is het minst betrouwbaar. Eerste
methode zou ik dus absoluut niet gebruiken in combinatie met de derde Event.
Alle cellen controleren:
Dim
x As Range
For Each x In ActiveSheet.UsedRange
Enkel de gewijzigde cel controleren:
With Target
Een voorbeeld van al deze zaken kan je hier bekijken.