Highlight geselecteerde rij in Excel
Zeker bij grote datasets kan het een voordeel hebben om de geactiveerde rij (en eventueel kolom) een andere achtergrondkleur te geven. Met behulp van Voorwaardelijke opmaak en een eenvoudig VBA-script (macro) is dit mogelijk in Excel.
Voorwaardelijke opmaak
Laten we beginnen met de formule welke we gaan gebruiken voor de voorwaardelijke opmaak.
De formule welke we gaan gebruiken om de actieve rij op te lichten bestaat uit twee functies en luidt als volgt:
=RIJ()=CEL("rij")
Werking van de functies
Met de functie RIJ() wordt het rijnummer geretourneerd van de cel waarin de functie is ingevoerd. Als je in cel J4 de functie =RIJ() invoert, zal deze 4 als resultaat retourneren.
Met de functie CEL() kun je informatie over de opmaak, inhoud of locatie van de geselecteerde cel retourneren. Bij deze functie geef je in een argument aan welke informatie je over de geselecteerde cel wilt weten. Deze zal vervolgens worden geretourneerd in de cel waarin je de functie hebt ingevoerd.
Door een cel te selecteren en de formules in je werkblad opnieuw te berekenen wordt de waarde in de cel geüpdatet. Dit doe je door de functietoets F9 in te drukken of in het Ribbon-menu te navigeren naar het tabblad FormulesBerekening en klik op Nu berekenen. Hiermee worden de formules opnieuw berekend.
Uitleg formule
Als we bovenstaande formule bekijken staat daar het volgende. Als het resultaat van de functie RIJ() hetzelfde is als het resultaat van de functie CEL(“rij”) dan is de formule WAAR. Wordt er niet voldaan aan de voorwaarde, dan is het resultaat van de formule ONWAAR.
Indien het resultaat van de formule WAAR is dient de achtergrondkleur van de rij te worden gekleurd.
Opmaken voorwaardelijke opmaak
Selecteer het bereik van je datatabel.
Ga in het Ribbon menu naar StartStijlenVoorwaardelijke opmaak.
Klik op Nieuwe regel….
Er opent zich een nieuw venster, genaamd Nieuwe opmaakregel.
Selecteer de regel Een formule gebruiken om te bepalen welke cellen worden opgemaakt.
Vul in de formulebalk de volgende formule in:
=RIJ()=CEL("rij")
Klik vervolgens op de knop Opmaak.
Er opent zich een nieuw venster Cellen opmaken.
Ga naar het tabblad Opvulling, selecteer de gewenste achtergrondkleur en klik op OK.
Nadat het venster Cellen opmaken is gesloten sluit je het venster Nieuwe opmaakregel door op OK te klikken.
Selecteer een regel in je datatabel en bereken de formules in je werkblad opnieuw door op de functietoets F9 te drukken of te navigeren naar het tabblad FormulesBerekeningNu berekenen.
Macro maken in de VBA-editor
Om na elke selectiewijziging de formules automatisch opnieuw te laten berekenen maken we gebruik van een macro met de VBA-editor.
Om de VBA-editor te openen druk je op de functietoets Alt+F9. Waarna de VBA-editor opent.
Selecteer aan de linkerzijde van je scherm de sheet waarin je de voorwaardelijke opmaak hebt staan.
Klik boven de VBA-editor het linker uitklapmenu uit en kies voor Worksheet.
Er wordt automatisch een subroutine gemaakt met de naam Worksheet_SelectionChange(ByVal Target As Range)
.
Vul de onderstaande code in de VBA-editor in:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Application.CutCopyMode = False Then
ActiveSheet.Application.Calculate
End If
End Sub
Sluit de VBA editor af en selecteer in je datatabel een aantal verschillende regels om te zien of het VBA-script goed werkt.
Sla het bestand op als Excel-werkmap met macro’s.
Uitleg werking VBA-script
Met het IF-statement controleren we of er waarden vanuit de datatabel worden geknipt of geplakt. Indien dit niet het geval is, worden de formules geüpdatet doormiddel van de code ActiveSheet.Application.Calculate
.
Indien we het IF-statement niet toepassen, zou het niet mogelijk zijn om waarden te kopiëren en te plakken. Vandaar dit stukje code.
Achtergrondkleur van geselecteerde kolom aanpassen
Wil je (ook) de achtergrond van de geselecteerde kolom een andere achtergrondkleur geven? Vul dan bij de voorwaardelijke opmaak de volgende formule in:
=KOLOM()=CEL("kolom")
Downloads
Kom je er met bovenstaande handleiding alleen niet uit, download dan het voorbeeldbestand of stel een vraag door een bericht achter te laten.
Dit delen:
- Klik om te delen met Twitter (Wordt in een nieuw venster geopend)
- Klik om te delen op Facebook (Wordt in een nieuw venster geopend)
- Zoeken
- Klik om dit te e-mailen naar een vriend (Wordt in een nieuw venster geopend)
- Klik om op LinkedIn te delen (Wordt in een nieuw venster geopend)
- Gebruiker (Wordt in een nieuw venster geopend)
- Front-end SEO-inspecteur (Wordt in een nieuw venster geopend)
- Statistieken (Wordt in een nieuw venster geopend)
- Meldingen (Wordt in een nieuw venster geopend)
Hi, het ‘handmatige’ deel met F9 werkt prima. het VBA script werkt ook goed, echter …. Als ik het bestand opsla en later weer open werkt het VBA script niet. De code staat er wel maar de regel wordt niet automatisch gehighligt
Hoi Chris,
Heb je de macro opgeslagen in de betreffende sheet waarop je de rijen wilt laten updaten?
Dus niet in een aparte module of in ThisWorkbook.
Je kunt ook even het voorbeeldbestand downloaden op deze pagina. Dan kun je controleren op eventuele verschillen.