Laatst bijgewerkt: augustus 2021; Microsoft Excel365, 2019, 2016.
In de VBA voor Excel Automation-tutorial van vandaag leren we hoe we de kleur van een cel programmatisch kunnen wijzigen op basis van de celwaarde.
Deze techniek kunnen we bijvoorbeeld gebruiken bij het ontwikkelen van een eenvoudig statusdashboard.
Opstelling
Als u nog niet in Excel aan het ontwikkelen bent, raden we u aan onze inleidende gids voor Excel-macro's te raadplegen . U moet er met name voor zorgen dat het tabblad Ontwikkelaar beschikbaar is in uw Microsoft Excel-lint, omdat u het zult gebruiken om wat eenvoudige code te schrijven.
- Microsoft Excel openen. Houd er rekening mee dat de code in deze zelfstudie naar verwachting zal werken in Excel 2007 en hoger.
- Voeg in een leeg werkblad de volgende tabel toe:

- Ga nu verder en definieer een benoemd bereik door te klikken op: Formules>>Naam definiëren

Celinterieurkleur wijzigen op basis van waarde met Cell.Interior.Color
- Druk op het item Ontwikkelaar in het lint.
- Druk op Visual Basic of Alt+F11 om uw VBA-editor voor ontwikkelaars te openen.
- Markeer vervolgens het werkblad waarin u uw code wilt uitvoeren. U kunt ook een module selecteren die uw VBA-code heeft.
- Ga je gang en plak deze code. In ons voorbeeld zullen we de binnenkleur van een celbereik wijzigen in specifieke cel-RGB-waarden die overeenkomen met de rode, gele en groene kleuren.
- Concreet gebruiken we de Excel VBA-methode Cell.Interior.Color en geven de bijbehorende RGB-waarde of kleurindex door.
Sub Color_Cell_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Status")
For Each MyCell In StatusRange
StatValue = MyCell.Value
Select Case StatValue
Case "Progressing"
MyCell.Interior.Color = RGB(0, 255, 0)
Case "Pending Feedback"
MyCell.Interior.Color = RGB(255, 255, 0)
Case "Stuck"
MyCell.Interior.Color = RGB(255, 0, 0)
End Select
Next MyCell
End Sub
- Voer uw code uit - ofwel door op F5 te drukken of door op Uitvoeren>> Sub / UserForm uit te voeren.
- U zult zien dat het statusdashboard is gevuld zoals hieronder wordt weergegeven:

- Sla je code op en sluit je VBA-editor.